【发布时间】:2012-01-10 18:22:31
【问题描述】:
我正在使用 XNA 开发我的第一个 2D 游戏,但遇到了一个小问题。 为了给我的 Sprite 一个 running 效果,我使用以下代码滚动一个 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 秒后,有时甚至在启动时! 知道为什么吗? 提前致谢,如果您需要代码的任何其他部分,请告诉我
【问题讨论】:
标签: c# xna sprite sprite-sheet