牛逼,两百行Python代码带你打造一款《天天酷跑》游戏!

最近一段时间,晓晓发现已经好久没有给大家带来趣味游戏的案例展示了。
刚好晓晓趁着周末写了一个《天天酷跑》的游戏,因此拿来跟大家一起分享,和大家一起来重温经典的酷跑游戏。

01、准备开发环境

俗话说,“工欲善其事,必先利其器”,我们先来介绍一下本次我们用到的库有哪些。(需要注意的是,由于很多的小伙伴都会反映很多库安装之后,会出现报错,找不到相应的模块),这是因为库版本的不同,所以跟大家详细的介绍一下程序所使用的各个环节及其对应的版本,这次我们使用的工具和其版本号如下所示:

PyCharm:2019.1.3

python3.5+,其中内置sys和random库

pygame:1.9.6

02、程序整体思路

介绍完我们的基础环境之后,接下来我们来介绍一下今天游戏设计的思路。

1).游戏初始化

  • 利用pygame创建特定大小的游戏窗口。

  • 显示游戏的初始界面,提示用户开始游戏

  • 在游戏界面中设置背景图片,并显示人物、障碍物和金币等物体。

2).游戏控制

  • 人物自动向前奔跑,按空格键控制人物跳跃。

  • 利用addObstacle函数创建障碍物。

  • 利用updateScreen函数不断更新界面中物体的显示。

3).碰撞检测

  • 利用ListenKeyBoard函数监控用户的键盘输入,并检测人物和障碍物金币等是否碰撞。

  • 人物和障碍物碰撞:当检测到人物和障碍物的位置信息有交集时,判断为碰撞,人物生命值减一,障碍物消灭。

  • 人物和金币碰撞:当人物撞到金币时,金币消灭,得分+100。

  • 当人物成功躲避障碍物时,得分+10。

  • 利用judgeState函数来判断游戏是否结束。

  • 游戏结束时显示最终得分,并提示用户按“Enter”键重新开始游戏。

03、带你一步一步写游戏

1).首先
整体看一下程序是如何实现初始化的:

程序是由pygame库为主体来实现的,首先程序中制定了游戏窗口的大小,以及程序不同模块的背景图,例如障碍物的图片,游戏进行时的背景图和游戏结束时的背景图。

2).游戏开始的界面

当运行程序后,程序首先会运行self.startGame这个函数,并给出游戏的介绍界面,提示用户开始游戏。

self.startGame函数中,首先绘制了游戏的初始界面,然后开始监控用户的键盘输入,当用户输出“ESC”键的时候,则直接退出游戏,否则的话,就进入真正的游戏。初始化的界面如下图所示:

3).创建各类物体

进入游戏之后,我们就需要创建人物、障碍物和金币以及游戏背景的设置。由于人物和障碍物已经游戏背景都通过类的方式来创建的,且它们的类形式非常类似,这里我们就以障碍物和金币类来进行简单的讲解。

在障碍物类中,类的初构造函数中,主要设置了类对象的显示图像(self.surface)、坐标信息(self.x、self.y)和长宽信息(self.w、self.h)。而self.getPos函数用来返回当前对象的坐标和长宽信息,self.judgeCollision函数则是用来进行物体的碰撞检测。

在程序中,通过self.addObstacle函数就可以添加障碍物对象,并随机设置障碍物在游戏界面中所处的高度位置。在游戏中障碍物目标如下图所示。

上图中,被红色框框住的就是障碍物,可以看到,障碍物之间有着不同的高度坐标,以及不同的间隔宽度,这样才能为跑酷人物带来不同的难度挑战。人物则是被蓝色框框住的目标,而位于画面正上方,被绿色框框住的则是“剩余生命值和得分”的信息。

4).用户键盘监控和碰撞检测

通过对于用户的键盘输入监控,来控制人物的运动,例如是跳跃还是退出游戏。

上图中,我们可以看到当用户输入空格键时,如果人物当前的state是0,则人物要完成一级跳,如果人物当前的state是1,则人物要完成二级跳。如果当前self.game_state是1,表示人物已经死亡,那么当用户输入“Enter”键时,游戏将重新开始。

对于人物和障碍物或者是金币的碰撞检测,则是通过障碍物类中的self.judgeCollision函数来进行判断。

如果判断是金币的话,则用户的得分+100,金币被吃掉。否则的话,用户的生命值减一,障碍物消失掉。

5).游戏界面不断刷新和判断游戏结束

通过self.updateScreen函数,可以实现游戏界面的不断的刷新。

上述的程序中,分别对游戏背景的位置、剩余生命值和得分的数值以及障碍物的数量和人物的运动状态进行更新后,就可以利用screen.blit函数在游戏界面中展示出来,通过不断的更新,让游戏看起来就是不断的运动的过程。

通过self.judgeState函数,来判断游戏是否结束,如果游戏结束了,则会展示出用户所获得分,并提示用户按“Enter”键重新开始游戏。

以上就是小编今天为大家带来的关于跑酷程序的分享和讲解,有兴趣的同学,可以在公众号后台找小助手源码。感受一下经典的跑酷游戏所带来的乐趣吧。

感兴趣的小伙伴,完整代码和全套Python学习资料免费赠送,具体看下方。

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。

img
img

二、Python必备开发工具

工具都帮大家整理好了,安装就可直接上手!img

三、最新Python学习笔记

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。

img

四、Python视频合集

观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

img

五、实战案例

纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

img

六、面试宝典

在这里插入图片描述

在这里插入图片描述

简历模板在这里插入图片描述
若有侵权,请联系删除
  • 9
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值