请参阅Having Some Issues With Making Pacman以完全理解这个问题。只需看看接受答案的第一部分。这是在java!
我正在使用上面链接中显示的数组。我让我的pacman角色移动得很好,然后它每100毫秒移动21个像素,因此它根本不光滑。
目前我只是将当前数组位置的x和y乘以21.我想知道如何使这个顺利进行。我已经尝试了一些如何移动的方法,但他们没有工作,我不是很熟练,而且我的方式效率不高,因此我来到这里寻找一种顺利移动的好方法。
您可能需要了解的一些事项: Pacman首先在按键方向检查点。(例如:右箭头向下。是否清楚?) 如果清楚,它将继续打电话给另一个处理移动pacman的类,直到有墙或敌人为止。
答案 0 :(得分:2)
人眼每100毫秒可以看到一帧,有些人能够看到比这更快的帧。您可能希望将帧速率提高到至少20FPS(相当于每50ms一帧)。如果你想让Pac-Man以相同的速度移动,你可以将距离减半并加倍速度(让他每50毫秒移动10或11个像素)。
有关更多基本背景信息,请参阅The Wikipedia article on framerate,并查看其他人成功使用的内容。
答案 1 :(得分:1)
您需要创建两个循环。一个游戏循环,它运行游戏的逻辑,每100毫秒运行一次,动画循环运行更频繁,可能每20毫秒,并计算所有精灵应该在哪里。
// in pseudo code
sleep 20 ms
if i++ % 5 == 0
do game loop
do animation loop with i
// passing i to animation loop will allow you to easily calculate how far sprite is along path to destination