Python制作小游戏(四)
本文转载至知乎ID:Charles(白露未晞)知乎个人专栏
下载W3Cschool手机App,0基础随时随地学编程>>戳此了解
导语
本文转载至知乎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