【发布时间】:2012-05-16 09:43:34
【问题描述】:
我目前正在使用 xna 创建动画。 当所有帧之间的帧高度、宽度和持续时间都相同时,我可以为 spritesheet 设置动画。
但我觉得它不是很灵活,我想在没有相同 frameHeight/Width 的 spritesheet 的情况下制作动画,更重要的是没有恒定的持续时间。
是否有任何教程或代码示例来学习这个?
编辑: 我想到了这样的事情,但我无法让它发挥作用:
public void Update(GameTime gameTime)
{
if (elapsedTime > frameTime)
{
currentFrame++;
elapsedTime = 0;
}
sourceRect = new Rectangle(newpositionX, newpositionY, newframeWidth, newframeHeight);
frametime = newframetime
}
enter code here
难点在于如何准确地指定每一帧的新位置和新帧时间。
【问题讨论】:
-
恒定持续时间是什么意思? xna 中的动画由您控制,您可以选择循环的慢/快以及动画的持续时间。
-
我的意思是帧持续时间。正如您所说,整个循环可以轻松设置为快或慢。但难点在于为整个循环中的每一帧设置不同的持续时间。