我正在使用C#/ XNA,并且已经被告知很多次不要将更新代码与绘图代码混合使用-我敢肯定我没有!但是,谁能描述“逻辑代码”到底是什么?
如此处所示:http : //blogs.msdn.com/b/shawnhar/archive/2007/07/25/understanding-gametime.aspx
[...]确保将所有游戏逻辑放入Update方法中(不在Draw中),并且所有内容都将以稳定的恒定速度运行。
我问这个问题是因为我的游戏速度相对于FPS有所波动。缓慢的FPS等于缓慢移动的物体,反之亦然。是的,我包括了预期的position += speed * (float)gt.ElapsedGameTime.TotalSeconds;
代码。
这可能是一个新手的大问题,但是我只想明确定义它。
gt.ElapsedGameTime.TotalSeconds
是从启动程序(游戏)开始经过的秒数。如果将速度乘以该速度,则在播放5秒钟后,速度将提高5倍(特殊情况下,速度设置为0)。不知道还有什么可以使那不真实,但我对此很感兴趣。
iii
,即我手动递增每个更新,因为我不想在几秒钟之内,而是需要步进或帧。我可以看到,您的方式虽然是对事物进行软编码的有效方式。
position = speed * ...TotalSeconds
。注意=
不是+=
。如果是+=
您键入的内容,那么您的位置几乎会立即从屏幕上飞出。