Python制作小游戏(四)

2018-08-09 17:44:44 浏览数 (5968)

本文转载至知乎ID:Charles(白露未晞)知乎个人专栏

下载W3Cschool手机App,0基础随时随地学编程>>戳此了解

导语

本期我们将制作一个简单的滑雪游戏。

废话不多说,让我们愉快地开始吧~


相关文件

百度网盘下载链接: https://pan.baidu.com/s/1F74v1qGVk2NEWMEv-5E25w

密码: 2fcv

图片素材源于网络,侵歉删。


开发工具

Python版本:3.6.4

相关模块:

pygame模块;

以及一些Python自带的模块。

环境搭建

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

先睹为快


原理介绍

游戏规则:

玩家通过“AD”键或者“←→”操控前进中的滑雪者,努力避开路上的树,尽量捡到路上的小旗。

如果碰到树,则得分减50,如果捡到小旗子,则得分加10。

逐步实现:

Step1:定义精灵类

由于游戏涉及到碰撞检测(滑雪者与树和小旗之间的碰撞),因此我们定义两个精灵类,分别用于代表滑雪者和障碍物(即树和小旗):

其中,滑雪者在前进过程中应当拥有向左,向右偏移的能力,并且在偏移时滑雪者向前的速度应当减慢才更加合乎常理,这样才能供玩家操作。同时,滑雪者应当拥有不同的姿态来表现自己滑行时的状态:

直线:

左偏一点:

左偏很多:

右偏一点:

右偏很多:

另外,尽管滑雪者的左右移动通过移动滑雪者本身实现,但是滑雪者的向前移动是通过移动障碍物实现的。

Step2:随机创建障碍物

现在我们需要定义一个随机创建障碍物的函数,以便在游戏主循环中调用:

Step3:游戏主循环

首先我们初始化一些参数:

其中障碍物创建两次的目的是便于画面衔接。

然后我们就可以定义主循环了:

主循环的内容包括:

事件监听、障碍物的更新、碰撞检测以及分数的展示等内容,总之还是很容易实现的。

Step4:其他

开始、结束界面这些,就靠大家自己发挥了,我就写了一个简单的开始界面:

效果:

All Done!


更多

代码截止2018-07-12测试无误。

欢迎到GitHub上Star:

https://github.com/CharlesPikachu/Games