Я пишу игру, и я бы хотел, чтобы анимация взрыва запускалась всякий раз, когда происходит столкновение. Однако подходы, которые я знаю, как оживить, основаны на ввод с клавиатуры. Каков наилучший способ кодирования метода, чтобы при вызове анимации один проход через все кадры останавливался?Анимация короткой последовательности
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
В метод Update Game1.cs - это взрыв вызоваAnimatio.Update (gameTime), который работает без ошибок, но он бесконечно циклически. Я хочу, чтобы один пробег над кадрами, а затем анимация, остановилась. – phcoding
Это похоже на то, что вы его зацикливаете (когда текущий кадр достигает конца, вы возвращаете его обратно на 0). –