0
這裏是一個平局塊:SpriteBatch將繪製到backbuffer而不是RenderTarget?
graphicsDevice.Clear(Color.CornFlowerBlue);
spriteBatch.Begin();
graphicsDevice.SetRenderTarget(renderTarget);
spriteBatch.Draw(texture2D, position, etc);
graphicsDevice.SetRenderTarget(null);
graphicsDevice.Clear(Color.Red);
spriteBatch.End();
這將產生一個紅色的背景上我的Texture2D。爲什麼這會將我的Texture2D繪製到屏幕上?當調用spriteBatch.Draw時,RenderTarget不是後臺緩衝區,並且我沒有在此代碼中繪製RenderTarget。不應該由於它被拖出屏幕而不顯示texture2D?另外,爲什麼沒有顯示(只是黑色),除非我在結束spriteBatch之前清除屏幕?
好的,但爲什麼在我的倒數第二行中清除GraphicsDevice會導致屏幕從我的紋理繪製到黑色到紅色? – GameKyuubi
這是關於你的代碼的排序,你清理並填充屏幕之前,你結束了你的精靈批處理,這實際上是繪製精靈畫面。 – XerShade
對,但在我的代碼中,End()之前做的最後一件事是Clear(),但不知何故,我的Texture2D仍然可見。它會改變背景顏色,但不會刪除Texture2D。 – GameKyuubi