多语言展示
当前在线:506今日阅读:23今日分享:25

python怎么制作射击类游戏

手把手教大家写个python小游戏
安装pygame并创建能左右移动的飞船
1

安装pygame(本人电脑是windows 10、python3.6运行以下命令:pip install wheelpip install pygame‑1.9.3‑cp36‑cp36m‑win_amd64.whl

3

为了在写游戏的过程中能便捷地创建一些新功能,下面额外编写一个settings模块,其中包含一个Settings类,用于将所有设置存储在一个地方。这样在以后项目增大时修改游戏的外观就更加容易。 我们首先将alien_invasion.py中的显示屏大小及显示屏颜色进行修改。 首先在alien_invasion文件夹下新建python文件settings.py,并向其中添加如下代码:class Settings(object):    '''docstring for Settings'''    def __init__(self):        # initialize setting of game        # screen setting        self.screen_width = 1200        self.screen_height = 800        self.bg_color = (230,230,230)

4

添加飞船图像

5

我们创建飞船类ship.py:

6

最后我们在屏幕上绘制飞船,即在alien_invasion.py文件中调用blitme方法:

7

首先我们将管理事件的代码移到一个名为check_events()的函数中,目的是为了隔离事件循环

8

然后我们修改alien_invasion.py代码,导入game_functions模块,并将事件循环替换成对函数check_events()的调用:

9

将更新屏幕的代码移到一个名为update_screen()函数中,并将这个函数放在模块game_functions中:

10

其中alien_invasion修改如下:

11

因为在pygame中,每次按键都被注册为KEYDOWN事件,在check_events()中,我们通过event.type检测到KEYDOWN事件后还需进一步判断是哪个按键。代码如下:

12

这个移动属性是飞船属性的一种,我们用ship类来控制,因此我们给这个类增加一个属性名称叫,moving_right以及一个update()方法来检测标志moving_right的状态。 ship

13

game_functions

14

最后在alien_invasion中调用update()方法

15

当前,每次执行while循环时,飞船最多移动一个像素,我们可以在Settings中添加ship_speed_factor,用于控制飞船的速度。我们将根据这个属性决定飞船每次循环时最多移动多少距离。 Settings:

16

Ship:

17

这里我们主要讲check_events()函数进行重构,将其中部分代码分成两部分,一部分处理KEYDOWN事件,一部分处理KEYUP事件。 game_functions:

18

创建Bullet类

19

前面定义了Bullet类和必要的设置后,就可以编写代码了,在玩家每次按空格键时都会发射一发子弹。首先,我们在alien_invasion中创建一个group,用于存储所有的有效子弹。

20

这里我们修改check_keydown_events()函数,来监听玩家按下空格键的事件。这里还需要修改update_screen()函数,确保屏幕每次更新时,都能重绘每一个子弹。 我们来看下效果:

21

在alien_invasion中删除消失的子弹。

22

创建第一个外星人这里和创建飞船的方法一样

23

打包成exe可执行文件上面游戏开发完了,那么你需要将其转成文exe的可执行文件。我们采用pyinstaller下图为代码传送门!

推荐信息