这是一个玩龙的游戏
简要
在Chrome浏览器地址栏输入"chrome://dino"或者断网后访问任意地址或者不科学上网访问需FQ的网站,将会出现如下界面:
这次我模仿它来简单做一个小恐龙游戏当期末作业
游戏规则
玩家通过键盘控制一只小恐龙的前进方式,空格键代表跳和游戏开始,下键代表蹲,当小恐龙触碰到植物或者飞龙时,游戏结束。小恐龙躲避的植物和飞龙越多,得分越高。
开发环境
- windows 10
- Python版本:3.8.2
- pygame
开始开发
下面所有代码的配置都在cfg.py配置文件里面
- 定义精灵类
- 植物类
其中,update函数的作用为使生成的植物不断地左移,来实现小恐龙不断右移的效果。如果它到达画布的最左边,即right < 0,则销毁它 - 飞龙类
飞龙类要稍微难一点,因为它有两个飞行状态,一个是翅膀向下,另一个是翅膀向下,通过image_idx表示它的飞行状态,需要做的就是每隔很短的一段时间,就让飞龙的翅膀由其中一种状态转为另外一种状态。 - 小恐龙类
小恐龙类代码复杂一点,但其实和飞龙差不多,也是一样用image_idx表示状态。
其中,小恐龙的下蹲和飞龙一样,在短时间内不断切换两张图片就OK了
它的一般状态也是类似的
对于跳跃这个难一点动作,我用了简单的上抛和之后的自由落体运动来实现它在竖直方向上的位置。
- 植物类
- 定义场景类
-
定义云场景
-
定义地板场景
地板是两张图片一起移动,如果某一张图片画出了画布,则放到另一张图片的右边 -
定义记分板场景
上面代码用is_highest变量来区分该记分板是否用于记录游戏最高分,还是只是记录当前的分数,做该区分的原因是游戏最高分前面有HI标识
-
- 定义游戏界面类
- 定义游戏开始界面
- 定义游戏结束界面
- 定义游戏结束界面
- 主体部分
- 实例化精灵类
- 主程序循环
- 运行游戏
到此,我就简单的做了一个小恐龙游戏,最后的结果截图为: - 实例化精灵类
- 定义游戏开始界面