XNA - 更新方法与Draw方法

Yog*_*esh 2 c# xna game-loop windows-phone-7 xna-4.0

我非常有兴趣知道,如果我将所有精灵动画/移动逻辑放在Draw方法而不是Update方法中,并且更新方法只是管理触摸和其他事件.1)游戏动画/逻辑表现的任何问题?
2)游戏画面不会按预期运行吗?

Fro*_*gon 7

绘制和更新方法之间基本上有一个很大的区别.绘制方法与机器的性能一起循环运行,因此如果计算机速度很慢,如果计算机性能较低,则每秒可能会有30个周期.这也意味着周期不固定,所以一秒钟你可以从draw方法获得30个周期,下一次你可能得到40个周期.

更新方法具有固定数量的周期,因此这意味着游戏玩法不会因为计算机速度慢而变慢.

将精灵动画逻辑放在draw方法中不是问题.这只是意味着动画将以机器可以处理的速度运行.但是,如果动画直接影响游戏中的其他逻辑,我建议将代码放在更新线程中.

  • @Yogesh `Draw` 将始终与您的 `Update` 方法以 1:1 的比例运行,除非您开始丢帧(在默认配置中)。一般来说,您的逻辑应该足够灵活,以应对“Draw”不被调用的情况。 (2认同)