Sam*_*ubb 0 python animation pygame game-physics
是否有算法更改一组坐标以使其向另一组坐标移动?
就像,如果我有ax,ay=(20,30)和bx,by=(40,60)
我似乎无法绕过这个.我如何改变ax和ay(随着时间的推移)平等bx和by?(最好是在python中可实现的算法.)
如果你想一想就很容易.要创建运动的幻觉,您需要创建一个动画 - 即逐步移动对象.
对象需要水平移动20个像素(bx - ax = 20)和垂直移动30个像素(by - ay = 60).现在,您需要定义对象将花费多少步骤.这基本上取决于你的游戏的帧速率,如果你想让动画持续1秒,你的游戏以25fps运行,动画将需要25步.如果你的游戏没有固定的帧速率而是其他东西,你需要计算游戏循环每次迭代的移动量,具体取决于从最后一帧开始经过的时间.
让我们假设我们以25fps的固定速度运行.在这种情况下,您需要执行以下操作:
dx, dy = (bx - ax, by - ay)
stepx, stepy = (dx / 25., dy / 25.)
Run Code Online (Sandbox Code Playgroud)
现在,stepx并且stepy每步都需要移动量.你需要做的是在游戏循环的每次迭代中添加:
# In each iteration:
object.set_position(object.x + stepx, object.y + stepy)
Run Code Online (Sandbox Code Playgroud)