問題タブ [spritebatch]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
5 に答える
4865 参照

c# - SpriteBatch: "End が正常に呼び出されるまで、Begin を再度呼び出すことはできません。"

そこで、現在のプロジェクトを開始し、最初に実行したところ、上記の例外が発生しました。昨夜は順調でした。これが私の Draw イベントのすべてのコードです。spriteBatch.Begin は、プロジェクトの他の場所には表示されません。ここで Begin を削除すると、spriteBatch.Draw が例外をスローし、開始の直前に spriteBatch.End を置くと、例外もスローされます。何が問題なのか、これを修正する方法について途方に暮れています。

0 投票する
3 に答える
2948 参照

xna - SpriteBatchが画面に描画されない

ゲームがリセットされたときに画面にクイックロードスプライトを描画しようとしていますが、スプライトバッチが描画されていません。game.spritebatch.begin();にブレークポイントを設定しました。そして、私が一歩踏み出すと、何も描かれません。何か案は?

これが私のリセット機能です

0 投票する
1 に答える
354 参照

c# - XNA(3.1)DrawUserPrimitivesおよびSpriteBatchアルファの問題

XNA 3.1で何かを作成していて、DrawUserPrimitivesを使用して2Dリボントレイルを作成しようとしています。私のアルゴリズムは、フレームごとに新しい頂点を追加するだけであり(何らかの動きが発生した場合)、頂点を繰り返し処理してフェードアウトし、不要な頂点を削除します。これは、他の多くのグラフィックにSpriteBatchを使用していることを除いて、非常にうまく機能します。現在、この画面全体をRenderTarget2Dに描画しています(さまざまな理由で、回避できません)。この奇妙なアルファの問題が発生しています。

私が抱えている問題は次のようになります。

トレイルは明らかに正しく動作していません

これは、進むにつれてフェードアウトする白いトレイルである必要があります。明らかにこれは起こっていません。代わりに、グラフィックスデバイスのクリアな色にフェードします。このトレイルを描画するときは、SpriteBatchを一時停止し(描画が完了したらEnd()を呼び出し、続いてBegin()を呼び出します)、正しい深さを取得できるようにします。プリミティブを描画するために使用しているエフェクトは、特別なものが何もないBasicEffectであり、SpriteBatchを初期化するコードは次のとおりです。

SpriteBatchを初期化した後の設定により、RenderTargetテクスチャの半透明性の正しい色付けが保証されます。ここで何かが問題を引き起こしていると思いますが、何が原因かわかりません。誰かがこれを手伝ってくれるなら、私はとても感謝しています。

乾杯。

0 投票する
1 に答える
820 参照

c# - XNAのスクリーンショットは、最終的なレンダリングではなく、ブルーム前を示しています

Reachグラフィック設定を使用してC#XNA4.0でコーディングされたWindowsプラットフォームゲームがあります。私のプロジェクトはGameStateManagementサンプルに基づいていますが、後でBloomおよびspriteSheet/spriteBatch機能を追加しました。

最終的な画面出力のスクリーンショットを保存してもらいたいです。ただし、スクリーンショットを保存すると、ブルームが適用される前とHUDテキストが表示される前(ブルームの後に描画)のレンダリングのみが表示されます。これらの2つのプロセスの後、Drawメソッドの最後にスクリーンショットを保存しました。

いろいろやってみました。ここでのアンドリューの答えXNAでスクリーンショットを撮るのは役に立ち、画像を保存します。ただし、最終的なレンダリングは保存されません。

ブルームプロセスやスプライトバッチと関係があると感じています。

これが私のコードです:

}

0 投票する
2 に答える
1155 参照

c# - XNA4.0SpriteBatch.Drawのメモリ不足例外がスローされました

まず第一に、私はspritebatch.draw()何度もメソッドを呼び出していると思いますが、ゲーム内のウィンドウを描画する必要があります(または、それが方法を理解できる唯一の方法です)。先に進んでコードをダンプします。

マイウィンドウクラス;

私のDraw()メソッド;

それはすべて素晴らしく、私の小さなウィンドウスキンのテクスチャなどに合わせて構成されています。唯一の問題は、少し遅れて、実行してから約1分で完全にクラッシュすることです。をスローしOut Of Memory Exceptionますが、spritebatchに関連する他のトピックや投稿はわかりませんし、見つけることもできません。誰かが私がこれを機能させて多くのメモリを消費しないようにする方法について何か提案がありますか?これは、ウィンドウを描画するための簡単で費用効果の高い方法だと思います。ドローコールをどのように削減するか、またはそのメモリを取り戻すかがわかりません。

0 投票する
2 に答える
397 参照

c# - テクスチャを周期的にスクロールする

私は C# と XNA を使用しており、ゲームでスクロールする背景を作成したいと考えています。

ある方向に無期限に移動するスクロール テクスチャを実装する最善の方法を見つけようとしています。星のある宇宙の背景を考えてみましょう。そのため、船が移動するとテクスチャが行われますが、反対方向になります。「タイリング」モードのようなものです。

これまでの私の唯一の推測は、たとえば左に移動している 2 つのテクスチャをレンダリングし、可視性を超えたときに最も左のテクスチャを右にジャンプさせるか、これに似たものにすることです。

それで、XNAでそれを行う簡単な方法、おそらくいくつかのレンダリングモードがあるのではないかと思っていましたか、それとも私が説明した方法で十分でしょうか? 物事を過度に複雑にしたくないだけです。私は明らかに最初にグーグルを試みましたが、ほとんど何も見つかりませんでしたが、多くのゲームも同様のテクニックを使用していることを考えると奇妙です.

0 投票する
2 に答える
425 参照

c# - SpriteBatch.Draw で指定した Color を Custom シェーダーで使用する

通常はSpriteBatch.Draw、色を指定できます。しかし、ここに問題があります。カスタムシェーダーを使用すると、渡された色が無視されSpriteBatch.Drawます...

どうすればそれを考慮に入れることができますか?つまり、色を正確にどのようにSpriteBatch.Draw渡すのですか? それがわかれば、シェーダーで使用できます。

これまでのところ私が持っているもの(関連部分):

0 投票する
1 に答える
560 参照

c# - XNA C# 巾着奇妙なボックス

画像: http://i.imgur.com/dJseH.png
私は XNA で作業してきましたが、これが実現したのはこれが初めてです 黒
のテキストは「オーク」と紫の「1 / 100」と言うはずです経験
のようですが、これは機能していないようです。テキストと背景色が同じであるように見えます。

これは巾着コードです:

基本フォント:

HUD 画像が少し透明だからではないかと思ったので、同じ効果を持つ背景にいくつかの文字列を描きました。
新しいフォントを作成しましたが、同じことが起こります。

0 投票する
1 に答える
2584 参照

sprite - OpenGL 3.2 コア スプライト バッチの例?

私はこれでしばらく髪を引き裂いています。バッチ処理 (インスタンス化なし) を使用して、多くのスプライトを効率的にレンダリングする OpenGL 3.2 コア (非推奨のものはありません!) の方法が必要です。

ジオメトリのみでこれを行う例を見たことがありますが、テクスチャも送信する必要があり、これを行う方法がわかりません。

実際に動作しているよくできた例が必要です。そして、モノゲームなどの他のライブラリがどのように機能するかを見ると、あまり役に立ちません。なぜなら、私が興味を持っているのはGLコードだけであり、非推奨のものを含める必要がないからです。

基本的に、すべてテクスチャを持つ数千以上のスプライトを効率的にレンダリングできるようにしたいと考えています。テクスチャは単なるスプライト シートなので、そのスプライト シートの領域をレンダリングするように指示するだけです。

プログラマブル パイプラインで利用できる資料の量にがっかりしています。私は絶対にやりたくないのですが、ネジ止めして固定パイプラインを使用する方がはるかに簡単だと思われるところまで。

ええ、私が望むことを行う完全な例はありますか? それとも、もっと知識のある人が書いてくれますか? :)

多くの例は、「ああ、これが 1 つの三角形をレンダリングする方法です」です。それは素晴らしいことですが、三角形/四角形を 1 つだけレンダリングする必要はありません。それに加えて、テクスチャを適用する必要があります。

VBO/VAO/EBO を使用した例

また、これは、コードが glTexPointer などを使用できないことを意味しますが、生の VBO/VAO でのみ使用できます...

0 投票する
1 に答える
279 参照

xna - 画面 XNA でクラスを複数回描画する

シンプルなブリックブレーカー型のゲームを作っています。私はボールパドルクラスを持っており、両方とも画面上をうまく動き回っています。また、ボールが当たると消えるレンガのレンガクラスもあります。今、私は手動でそれらをすべて書くことによって描画せずに、画面上に複数のレンガが欲しい

spriteBatch.Draw(brickTexture、brickPosition、Color.White);

何度も。(異なる位置で)。クラスを複数回描画し、各レンガがヒットすると消えるようにするにはどうすればよいですか。