C# XNA-更新方法与绘制方法

C# XNA-更新方法与绘制方法,c#,windows-phone-7,xna,xna-4.0,game-loop,C#,Windows Phone 7,Xna,Xna 4.0,Game Loop,我很想知道,如果我把所有的精灵动画/运动逻辑放在绘图方法中,而不是更新方法,更新方法只是管理触摸和其他事件。 1) 游戏动画/逻辑的性能有问题吗? 2) 游戏屏幕会不会像预期的那样运行?平局和更新方法基本上有一个很大的区别。draw方法根据机器的性能按周期运行,因此,如果计算机速度较慢,如果计算机性能较低,则每秒可能会有30个周期。这也意味着循环不是固定的,因此一秒钟内您可能会从draw方法中获得30个循环,下一次您可能会获得40个循环 更新方法有一个固定的周期数,所以这意味着游戏不会因为电脑速

我很想知道,如果我把所有的精灵动画/运动逻辑放在绘图方法中,而不是更新方法,更新方法只是管理触摸和其他事件。 1) 游戏动画/逻辑的性能有问题吗?

2) 游戏屏幕会不会像预期的那样运行?

平局和更新方法基本上有一个很大的区别。draw方法根据机器的性能按周期运行,因此,如果计算机速度较慢,如果计算机性能较低,则每秒可能会有30个周期。这也意味着循环不是固定的,因此一秒钟内您可能会从draw方法中获得30个循环,下一次您可能会获得40个循环

更新方法有一个固定的周期数,所以这意味着游戏不会因为电脑速度慢而慢下来


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

在这种情况下(30 fps或40 fps,没有同步b/w方法),如果我需要在更新和绘制之间运行1对1,怎么办?@Yogesh尝试将所有绘制代码移动到更新方法,尽管这是不寻常的,也不推荐使用。@Yogesh
Draw
将始终以1:1的速度运行
Update
方法,除非您开始删除帧(在默认配置中)。一般来说,您的逻辑应该足够灵活,可以处理未调用的
Draw