python怎么制作射击类游戏
手把手教大家写个python小游戏
安装pygame并创建能左右移动的飞船
1、安装pygame(本人电脑是windows 10、python3.6运行以下命令:pip install wheelpip install pygame‑1.9.3‑cp36‑cp3鲂番黟谊6m‑win_amd64.whl

2、新建一个文件夹alien_inva衡痕贤伎sion,并在文件夹中新建alien_invasion.py文件,输入如下代码。并运行import s烤恤鹇灭ysimport pygamedef 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()

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、这里我们修改chec氯短赤亻k_keydown_events()函数,来监听玩家按下空格键的事件。这里还需要修改update_screen()函数,确保屏幕每次更新时,都能重绘每一个子弹。我们来看下效果:

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

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

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