2012-10-05 76 views
0

我创建了一个交叉silverlight/xna应用程序,我发现这个运动并不那么流畅。平滑运动?

我正试图将云移动到我的屏幕上。

更新间隔每33毫秒一次。我已经运行了应用程序测试ElapsedTime.Miliseconds != 33,并且该程序从未命中,所以它每33毫秒运行一次。

我每33毫秒做的是我把x pos和减去5.4(float)来获得我想要的速度。

但我观察到运动不那么光滑,感觉不舒服。

回答

3

这不是解决此问题的最佳方法。 您现在拥有它的方式,您的云端移动将根据计算机规格以不同的速度运行。你应该做的是根据经过的时间来移动你的云。这会使你的动画相同的行为的时候,无论怎么每秒多少帧,你可以泵出:

xPos -= elapsedTime.Miliseconds * moveSpeed; 

设置MOVESPEED变量的东西,你的作品。

+3

“rate * time = distance”的经典案例。在设置移动速度时,记住度量单位。如果乘以毫秒,那么您的速率需要在每毫秒的距离内进行乘法运算。 –