python怎么制作射击类游戏

2026-03-16 08:36:31

1、安装pygame

(本人电脑是windows 10、python3.6运行以下命令:

pip install wheel

pip install pygame‑1.9.3‑cp36‑cp36m‑win_amd64.whl

python怎么制作射击类游戏

2、新建一个文件夹alien_invasion,并在文件夹中新建alien_invasion.py文件,输入如下代码。并运行

import sys

import pygame

def run_game():

    #initialize game and create a dispaly object

    pygame.init()

    screen = pygame.display.set_mode((1200,800))

    pygame.display.set_caption("Alien Invasion")

    # set backgroud color

    bg_color = (230,230,230)

    # game loop

    while True:

        # supervise keyboard and mouse item

        for event in pygame.event.get():

            if event.type == pygame.QUIT:

                sys.exit()

        # fill color

        screen.fill(bg_color)

        # visualiaze the window

        pygame.display.flip()

run_game()

python怎么制作射击类游戏

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)

python怎么制作射击类游戏

4、添加飞船图像

python怎么制作射击类游戏

5、我们创建飞船类ship.py:

python怎么制作射击类游戏

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

python怎么制作射击类游戏

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

python怎么制作射击类游戏

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

python怎么制作射击类游戏

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

python怎么制作射击类游戏

10、其中alien_invasion修改如下:

python怎么制作射击类游戏

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

python怎么制作射击类游戏

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

python怎么制作射击类游戏

13、game_functions

python怎么制作射击类游戏

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

python怎么制作射击类游戏

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

python怎么制作射击类游戏

16、Ship:

python怎么制作射击类游戏

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

python怎么制作射击类游戏

18、创建Bullet类

python怎么制作射击类游戏

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

python怎么制作射击类游戏

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

python怎么制作射击类游戏

21、在alien_invasion中删除消失的子弹。

python怎么制作射击类游戏

22、创建第一个外星人

这里和创建飞船的方法一样

python怎么制作射击类游戏

23、打包成exe可执行文件

上面游戏开发完了,那么你需要将其转成文exe的可执行文件。我们采用pyinstaller

下图为代码传送门!

python怎么制作射击类游戏

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢