Я работаю над своей первой 2D-игрой с XNA, и у меня есть небольшая проблема.Чтобы придать работающий эффект моему Sprite, я прокручиваю SpriteSheet с помощью этого кода (работает правильно):
if (AnimationDelay == 6)
{
if (CurrentFrameR.X < SheetSizeR.X)
{
++CurrentFrameR.X;
}
else
{
CurrentFrameR.Y++;
CurrentFrameR.X = 1;
}
if (CurrentFrameR.Y >= SheetSizeR.Y)
{
CurrentFrameR.X = 0;
CurrentFrameR.Y = 0;
}
AnimationDelay = 0;
}
else
{
AnimationDelay += 1;
}
xPosition += xDeplacement;
}
И вот эти объекты используются:
Point FrameSizeR = new Point(29, 33);
Point SheetSizeR = new Point(5, 1);
Point CurrentFrameR = new Point(0, 0);
int AnimationDelay = 0;
У меня один и тот же код с другим SpriteSheet , когда спрайт работает влево.Все работает нормально, я бы сказал, что 90% времени, но остальные 10% спрайтовой анимации остаются в одном кадре SpriteSheet , в обоих направлениях (влево и вправо) и остаются застрявшими, пока я не закроюпрограмма.Дело в том, что я не могу понять, почему, поскольку это никогда не происходит в один и тот же момент ... Иногда после 10, 15, 30 секунд, а иногда даже при загрузке!Есть идеи почему?Спасибо заранее и дайте мне знать, если вам нужны какие-либо другие части кода