Python制作小游戏(七)

导语

本期我们将仿制一个Chrome浏览器里隐藏多年的彩蛋小游戏,即"恐龙跳一跳"(当然一般都叫它T-Rex Rush)。

让我们愉快地开始吧~

题外话

在Chrome浏览器地址栏输入"chrome://dino"或者断网后访问任意地址或者不科学上网访问需FQ的网站,将会出现如下界面:

此时,按下键盘的空格键,就可以进入Chrome浏览器的彩蛋游戏“恐龙跳一跳”了:

开发工具

Python版本:3.6.4

相关模块:

pygame模块;

以及一些Python自带的模块。

环境搭建

安装Python并添加到环境变量,pip安装需要的相关模块即可。

先睹为快

在cmd窗口运行"game7.py"文件即可。

效果如下:

原理介绍

游戏规则简介:

玩家通过空格键控制一只小恐龙的前进方式,当小恐龙触碰到植物或者飞龙时,游戏结束。小恐龙躲避的植物和飞龙越多,得分越高。

逐步实现:

Step1:定义精灵类

为了方便实现小恐龙和植物以及飞龙之间的碰撞检测,我们先定义一些精灵类,包括:

① 植物类

其中,move函数的作用为使随机生成的植物不断地左移,来实现小恐龙不断右移的效果。

② 飞龙类

飞龙类的定义要略微复杂一些,因为如果我们想让飞龙飞起来更逼真一些,就必须每隔一段很小的时间,就对飞龙的状态进行转换。具体而言,飞龙的飞行状态有两种,即翅膀向上和翅膀向下:

我们需要做的就是每隔很短的一段时间,就让飞龙的翅膀由其中一种姿势转为另外一种姿势。

③ 小恐龙类

小恐龙类的定义与飞龙类类似,只不过状态要更加丰富一些,并且通过匀加速直线公式模拟恐龙的跳跃和下降的动作。

Step2:定义场景类

我们需要定义一个简单的场景类(道路和云等场景),来使我们的游戏效果更加逼真:

这里唯一需要注意的就是场景的左移速度应当与植物类一致(毕竟它们理论上都应当是相对静止的),并且需要三张场景图同时左移来保证画面的连续性。

Step3:游戏主循环

先初始化,内容包括加载游戏素材文件、实例化之前定义的精灵类和场景类、定义一些必要的常量和用户事件等:

然后就可以进入游戏主循环了:

主循环主要包括四个功能,一是事件检测;二是不断地产生、移动并画出相应的场景和精灵类;三是碰撞检测;四是统计并显示当前分数。

All Done!

更多

代码截止2018-08-18测试无误。

本系列文章相关文件中均提供了打包好的版本,无需环境搭建即可运行玩耍~

本系列教程的所有代码均以Github中的最新版本为准,比如之前的坦克大战游戏昨天我发现了一个bug,于是进行了简单的修改,但只在Github中进行了更新。Github地址:

https://github.com/CharlesPikachu/Games

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180818B06X6600?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券