我正在寫一個遊戲,我希望每當發生碰撞時都要運行爆炸動畫。然而,我知道如何進行動畫處理的方法是基於鍵盤輸入的。編寫該方法的最佳方法是什麼,以便在調用動畫時通過所有框架單次傳遞然後停止?動畫短序列
public void Update(GameTime gametime)
{
timer += gametime.ElapsedGameTime.Milliseconds;
if (timer >= msBetweenFrames)
{
timer = 0;
if (CurrentFrame++ == numberOfFrames - 1)
CurrentFrame = 0;
rect.X = CurrentFrame * width;
rect.Y = 0;
}
}
public void Render(SpriteBatch sb, Vector2 position, Color color)
{
sb.Draw(aniTex, position, rect, color, 0, Vector2.Zero, 2.0f, SpriteEffects.None, 0);
}
請問您的代碼做的工作?它看起來不錯。 – Virtlink
在Game1.cs的Update方法有一個調用explosionAnimatio.Update(gameTime);它運行時沒有錯誤,但是它無限循環,我希望在幀上運行一次,然後停止動畫 – phcoding
這似乎是因爲你循環它(當前幀結束時,將其重置爲0) –