因爲spriteBatch()只是沒有「點擊」我,所以我準備把我的頭髮撕掉。我似乎無法在網上找到任何東西,涵蓋了我在這種情況下的使用情況,這讓我相信我錯過了一件非常簡單的事情。不同類的Xna spriteBatch
我在我的XNA項目中有一個叫做player的類,它令人驚訝地控制着玩家,物理等等。但是我一次只做一步。第一步:在關卡中繪製玩家。等級代碼很好,不用擔心。但我無法讓玩家畫畫。
我有一個基本的Texutre2D紋理,我繪製了一個精靈畫圖。通過this教程去,我應該能夠做到以下幾點:
public void LoadContent()
{
spriteBatch = new SpriteBatch(GraphicsDevice);
playerSprite = Level.Content.Load<Texture2D>("player/pory");
}
public void Draw()
{
graphics.GraphicsDevice.Clear(Color.Beige);
// Draw the sprite.
spriteBatch.Begin(SpriteSortMode.BackToFront, BlendState.AlphaBlend);
spriteBatch.Draw(playerSprite, Position, Color.White);
spriteBatch.End();
}
它應該只是工作。但不是。我在這個玩家類中錯過了一些東西。 1)在LoadContent()中,我無法創建new SpriteBatch()
,因爲GraphicsDevice
不存在,無法創建。它出現在Game.cs中,並且初始化爲this
這意味着遊戲本身。好的。但是我也無法引用Game.GraphicsDevice。
這基本上是整個問題,一切都源於此。我找不到解決辦法。有誰知道正確的方法來嘗試做到這一點?我似乎無法找到我錯過了什麼來實現這個目標。
此代碼是Player.cs的一部分,它是項目中自己的文件。 – Eric 2013-05-01 21:36:32
由於這個確切的問題,你的繪圖代碼不應該在你的播放器類中。所有的渲染代碼都應該爲此目的設計一個類。這個類應該只有一個實例和一個對象this.GraphicsDevice等必要對象的引用。 – ClassicThunder 2013-05-01 22:03:36