私の問題は、2つの異なるRenderTarget2Dを画面に描画しようとしていますが、最後に描画されたものだけが表示されることです。Draw
コードは次のようになり、メソッドで描画する必要があるクラスの各インスタンスによって1回ずつ、2回呼び出されます。
public override void Draw()
{
gfxDevice.SetRenderTarget(myRenderTarget);
gfxDevice.Clear(Thistle);
//pseudocode
foreach (something in a list)
{ spritebatch.begin();
spritebatch.DrawString(something);
spritebatch.end();
}
//reset to the backbuffer
gfxDevice.SetRenderTarget(null);
gfxDevice.Clear(backgroundColor) //Here is what I thought the offending line was
//draw the RenderTarget to backbuffer
spriteBatch.Begin();
spriteBatch.Draw(myRenderTarget, rect, this.backgroundColor);
spriteBatch.End();
私が解決策だと思ったのはgraphicsDevice
、メソッドが呼び出されるたびにクリアを停止するDraw()
ことですが、そうしないと、新しく描画されたrendertarget以外はすべて醜い紫色に描画されます。このような:
紫色は、この質問End()
のおかげで、スプライトバッチを実行した結果だと思います
両方のRenderTargetが適切に描画されるようにするには、何を変更する必要がありますか?つまり、両方のウィジェットが適切なColor.Thistle
背景とともに描画されますか?
理想的には、画面は次と両方の組み合わせのように見えます。