为什么每次我们想用箭头键移动图形时都需要使用Timer?

时间:2015-02-21 13:50:58

标签: java animation breakout

我想建立一个brekaout游戏。当我想用箭头键移动小提琴时,它不起作用。所以我读了几篇文章,我看到他们使用计时器来做到这一点。你能告诉我他们这样做的原因吗?

2 个答案:

答案 0 :(得分:2)

如果你考虑一下,答案是相当直接的。当您按住箭头键时,您需要找出桨叶沿X轴移动的距离。

如果没有计时器,则无法控制新的偏移超过n经过的秒数。

基础物理公式D = S * T(距离=速度*时间)

每当我们按下键时,可以启动计时器,然后我们通过将恒定速度变量乘以经过的时间来找到要添加/减去当前位置的新距离。

这也应该允许流体运动,而不是在每个按键上将运动错开一个固定的距离。

答案 1 :(得分:2)

理论上有两种方法:

  • 循环询问输入,循环绘制动画
  • 在计时器上执行动画步骤并导致重新绘制,并安装输入处理程序

第二种方法是当前操作系统中使用的方法,因为它不阻塞,不轮询,事件不会将不同的系统方面联系在一起。 DOS也是这样做的。

所以程序遵循更间接的事件驱动方法。