游戏主循环的逻辑很简单,即每帧游戏画面,我们都需要检测一下玩家的操作,如果玩家按下了空格键或者 ↑ 键,则小恐龙跳跃,如果玩家按下了 ↓ 键,则小恐龙低头,否则小恐龙正常向前冲。
然后在游戏中,我们随机产生云,飞龙和仙人掌这些游戏场景和障碍物,并且和路面一起以相同的速度向左移动,从而实现小恐龙向右移动的视觉效果。在移动的过程中,我们需要对小恐龙和仙人掌,小恐龙和飞龙进行碰撞检测,当小恐龙碰到这些障碍物时,小恐龙就死掉了,本局游戏也随之结束。
需要注意的是我们应该使用 collide_mask 函数来进行更为精确的碰撞检测,而不是之前的 collide_rect 函数:
即当两个目标的最小外接矩形有重叠时,collide_rect 就会判定两个目标有碰撞,这显然是不合理的,会给玩家带来较差的游戏体验。
另外,当分数每提高一千分,我们就和原版的游戏一样增加一点场景和障碍物向左移动的速度(也就是增加小恐龙向右移动的速度)。
源码和文档都托管在了【WRITE-BUG数字空间】上面了,有需要的可自取~