我想建立一个突破游戏。当我想使用箭头键移动 piddle 时,它不起作用。所以我读了几篇文章,我看到他们使用计时器来做到这一点。你能告诉我他们这样做的原因吗?
问问题
47 次
2 回答
2
如果您考虑一下,答案是相当直截了当的。当您按住箭头键时,您需要找出桨需要沿其 X 轴移动多远。
如果没有计时器,就无法控制n
经过秒数的新偏移量。
基本物理公式D = S * T
(距离 = 速度 * 时间)
每当我们按下按键时,就会启动一个计时器,然后我们通过将恒定速度变量乘以经过的时间来找到要添加/减去当前位置的新距离。
这也应允许流体移动,而不是在每次按键时将移动交错固定距离。
于 2015-02-21T14:45:08.747 回答
2
理论上有两种方法:
- 循环询问输入,循环绘制动画
- 在计时器上执行动画步骤并导致重绘,并安装输入处理程序
第二种方法是当前操作系统中使用的方法,因为它不是阻塞的,不是轮询的,事件不会将不同的系统方面联系在一起。DOS 不然。
所以程序遵循更间接的事件驱动方法。
于 2015-02-21T14:45:22.997 回答