pygame实现飞机大战游戏
Posted jay编程
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pygame实现飞机大战游戏相关的知识,希望对你有一定的参考价值。
标题:pygame实现飞机大战游戏
源码链接:我的github地址
一、具体演示
1.怪兽分为小怪,和大怪;大怪可以发射子弹
2.英雄飞机共有10个生命值
3.英雄飞机可以上下左右移动
4.显示了英雄生命值,消灭怪兽数量,
5.提供了供应包,可以改变英雄飞机发射的子弹
二、项目概述
hm_01_pygame_base05.py
hm_01_pygame_base06.py,飞机大战【非面向对象的飞机大战,作为一个熟悉,热身】
message.py ,message2.py,是在pygame屏幕上输出一句话【作为一个熟悉,热身】
plane_main2.py,plane_sprites.py,是【正式】的飞机大战项目
使用python实现飞机大战游戏,适合python基础入门,同时在一般的飞机大战基础上,新增了很多功能
三、项目具体细节
1.背景,飞机 【完成】
2.敌机,多个 —定时器+事件监听,销毁【完成】
3.飞机子弹 【完成】
【具体实现操作】
【分析:】飞机,敌机等等,都是最后画出来的,所以重点是什么时机添加进去,
子弹- -每隔0.5s监听到事件,添加子弹到精灵组中==》画出子弹了,
【操作】在init中创建精灵组,监听中,添加进去。
每隔 Xs,根据飞机的位置,发射一次,
但是,没有绑定飞机:
eg:多个大怪出现的时候,每个大怪就需要有不同的精灵组
solution:在hero类中,创建子弹精灵组,main中画出来,fire负责将子弹加入精灵组中
4.飞机移动 – 设置边界【完成】
5.飞机喷火 【完成】
6.碰撞效果
子弹–敌机 【完成】
hero–敌机
6.1子弹–敌机:
敌机爆炸:把爆炸精灵组画出来,监听到爆炸,就将爆炸类加入精灵组中
6.2hero–敌机 :
所以应该是,先清屏,然后打印“游戏结束“,再等待按键—调用此方法
self.__game_over()
【solution】 设置一个游戏结束的标志,以便实现按键结束
敌机,子弹,都是事件监听中【每隔Xs】出现的,所以,设置此标志后,就不会出现了
self.gameover_flag = False
7.怎么在屏幕上打印一句话 查找字体 C:\\WINDOWS\\Fonts\\ARIALN.TTF
==实现生命值,消灭怪兽数量
8.大怪2 3
大怪–发子弹,
【注意相对速度:大怪,子弹、背景都在运动】
要是速度没有选好—可能出现后退的情形
可以设置每颗子弹出现的时间
9.大怪爆炸
英雄,碰子弹—true,子弹消失;
英雄+效果
10炸弹供应
原来子弹,供应子弹—都是event中监听
设置一个flag,判断是原来的,还是供应的,【supply碰撞了,就设置为供应的】
在游戏循环中—时间,使用变量,估计供应结束的时间,
若结束,恢复标志
11.大怪3 【待续】
Mac下使用pygame实现飞机大战load图片问题
直接上代码
import pygame
pygame.init()
# 创建游戏的窗口 480 * 700
screen = pygame.display.set_mode((480, 700))
# 绘制背景图像
# 1> 加载图像数据
bg = pygame.image.load("./images/background.png")
# 2> blit 绘制图像
screen.blit(bg, (0, 0))
# 3> update 更新屏幕显示
pygame.display.update()
while True:
pass
pygame.quit()
这段代码在linux以及windows下运行没毛病,但是在mac系统下偏偏卡死了。
很头疼,我想出现卡死最有可能是因为无限循环造成的,于是乎,我把循环代码删除。重新运行能看到绘制的图片一闪而过。
那么问题肯定就出在循环里面了。
于是我又收索"运行pygame出现卡死"的问题,在网上看到了这样一段代码
while True:
event = pygame.event.poll()
if event.type == pygame.QUIT:
pygame.quit()
exit()
当我把这段代码复制粘贴后,奇迹出现了。绘图窗口正常运行了。
有知道原因的同学请不吝赐教
但是修改之后,还是背景依然空白,图片没有load下来。删除while循环运行,发现并没有绘制的图片一闪而过,于是考虑版本问题。
pygame官方网站:https://www.pygame.org/wiki/GettingStarted
在写代码前已经安装过了pygame2.0.0,但是在pycharm运行时,自动安装的却是pygame1.9.6 ==
于是修改pygame版本为2.2.0
pycharm -> preferences -> project interpreter
选取左下方‘+’号,搜索栏输入pygame,选中pygame。注意??:勾选specific version,选择2.0.0.dev8。 最后 install package即可。
重新运行,图片显示成功!
以上是关于pygame实现飞机大战游戏的主要内容,如果未能解决你的问题,请参考以下文章