Python作个小游戏

Ps.可去知乎搜索“雨露浅歌”大神,他写的帖子里有详细讲解和源码。dom

游戏概述、玩法:经过键盘的↑键来控制小球往上走,当松开↑键时,小球以必定速度向下掉,小球每越过一根棒加1000分,越过一个飞镖加2000分,当小球碰到棒或者飞镖时,生命减一,同时还设置了暂停键,开始键,本局分数和历史最高分。
字体

游戏准备:安装pygame库spa

pip install pygame 安装pygame设计

安装中3d

安装完成blog

(注: 查看全部库 pip list ;  卸载某库 pip uninstall xxx;  更新某库 pip install --upgrade xxx)队列

一、游戏玩法

经过键盘的↑键来控制小球往上走,当松开↑键时,小球以必定速度向下掉,小球每越过一根棒加1000分,越过一个飞镖加2000分,当小球碰到棒或者飞镖时,生命减一,同时还设置了暂停键,开始键,本局分数和历史最高分。游戏

二、设计思路

2.1 游戏背景和游戏名

背景颜色为黑色,游戏名为跳跃的小球事件

实例代码图片

运行以上程序,就能够看到名为跳跃的小球的黑色窗口。

2.2 小球

首先咱们须要一张小球的图片,而后导入它而且将它显示在(0,0),也就是左上角的位置以左上角为原点,越往右下,坐标就越大,注意这里的坐标对应的是图片的左上角。

 

定义一个Ball用来控制小球的位置,上升下落的速度。小球左边的位置不变,顶部的位置发生变化便可,因此当小球上升时,顶部位置的坐标减少,降低时,顶部位置的坐标增大。

 

控制部分的代码,当按下键时,小球上升,当松开时,小球降低。由于这是一个不断刷新的过程,咱们要写在while循环中。

 

2.3 星空

由于星星是随机分布在屏幕中的,因此咱们要先导入random中的randint方法并导入星星的图片。

 

定义星星类

 

建立多颗星星并让它移动起来,定义一个添加星星的方法

 

实例化星星队列,调用添加星星的方法经过循环星星队列将30颗星星显示在屏幕上

 

2.4 棍棒

导入棒的图片

 

而后定义棒类

 

添加棒的方法

 

实例化棒队列,并调用添加棒的方法经过循环棒队列将20根棒显示在距离屏幕最左边(width5*width)

 

2.5飞镖

飞镖比棒复杂一点点,不过也是差很少的,我都思路是这样的,将下面棒的四种摆放位置依次显示,就造成了飞镖。

先导入飞镖图片

 

定义飞镖类

 

定义添加飞镖的方法

 

而后实例化飞镖队列,并调用添加飞镖的方法将飞镖显示在屏幕上

 

2.6 生命值

导入字体

 

生命图片的显示导入图片

 

2.7 分数

与生命值部分代码相同

 

先设置初始分数为score = 0

而后显示分数

 

 注意:分数的增长,由于当小球越过棒和飞镖时,分数就增长,故分数的增长和小球、棒和飞镖的距离有关,因此要在显示它们时判断它们的距离

 

2.8 游戏结束

游戏结束的时候会显示游戏结束,本局得分,历史最高分和再来一遍字样,咱们都要把它们显示出来,由于点击再来一遍是从新开始游戏,为了好肯定它的区域,我采用了以图片显示的方式,而其它的都是以文字方式显示。

 

显示分数和最高分数由于要保存最高分数,因此咱们要新建一个文本文件score.txt,设置文本开始所存的分数为prescore=0,最高分为0.

 

2.9 暂停键

把鼠标移到暂停或者开始键时,按键变亮,当鼠标移除来时,按键变暗首先导入图片

 

设置图片的位置

 

由于当暂停时,除了小球、棒和飞镖不显示,其它的都显示,因此要设置一个暂停变量pause来控制,刚开始咱们固然设置为False。由于分数,生命,星空和暂停或开始键在游戏没结束的时候始终显示,因此把它们放在if not pauseelse语句以外。而其余的根据逻辑关系放在指定位置便可由于当鼠标停在或者按下暂停和开始键时,图片会变化,因此在获取事件循环中要多加几个判断

在获取事件源中添加逻辑代码

 

 三、运行结果

3.1 游戏开始

 

3.2 游戏暂停

3.3 游戏结束

 

 


相关文章
相关标签/搜索