python 儿童 游戏_少儿编程分享:手把手教你用Python编写战斗机游戏(完)
原标题:少儿编程分享:手把手教你用Python编写战斗机游戏(完)
加入图像
现在我们已经能够玩游戏了,但这个游戏丑确实有点丑 。接下来,我们要把单调的白色矩形换成好看的图片。
在前面的代码中,我们用填充了白色的surface对象来表示游戏中的所有东西(包括游戏主角、敌人)。用白色矩形能够帮助我们理解surface对象是如何运作的,但是它们确实不美观。我们现在要给游戏主角和敌人加上图片,图片的素材可以通过文末扫码获得。如果你不记得要把图片素材放在哪里,可以看看我们之前发的兔獾大作战游戏教程。
改变对象构造器
现在我们的player构造器(constructor,类里用于建立对象的特殊子程序)长这样:
class Player(pygame.sprite.Sprite):
def __init__(self):
super(Player, self).__init__()
self.surf = pygame.Surface((75, 25))
self.surf.fill((255, 255, 255))
self.rect = self.surf.get_rect()
新的构造器会长这样:
我们想把surface对象换成图片,要用到pygame.image.load()方法,然后向这个方法传递一个文件地址。Load()方法会返回一个surface对象。然后我们要对这个surface对象调用convert()对其进行复制,让它更快地出现在屏幕上。
接下来,我们要对图像调用set_colorkey()方法。Set_colorkey方法会设定PyGame渲染成透明色的颜色。在这里,我把这个颜色设置为白色,因为白色是飞机图片的背景图。RLEACCEL是一个可有可无的参数,不过加上这个参数能够让PyGame渲染图片时更快些。
最后,我们要对图像调用get_rect()方法来得到rect对象。
小提示
现在surface对象不再是用白色填充,而是被放上了图片。
对Enemy构造器进行类似的改动:
现在我们的游戏有了更好看的图片了!不过好像还少了些什么。让我们在画面上加些云朵,这样飞机就更像是在空中飞行了。要加上云朵,和先前加上其他对象类似。首先,我们要创建一个带有云朵图片的Cloud对象,然后用update()方法不断地把云朵移向屏幕的左边。然后我们要创建一个自定义事件来产生一些新的云朵(这些新的云朵也会被加到all_sprites组中)。创建Cloud对象的代码如下:
看起来是不是很眼熟?在这段代码下面,我们要加上创建敌人的事件:
ADDCLOUD = pygame.USEREVENT + 2
pygame.time.set_timer(ADDCLOUD, 1000)
然后给他们创建一个新的精灵组:
clouds = pygame.sprite.Group()
现在,在我们的游戏主循环中,我们要对事件队列进行循环,并对添加云朵的事件ADDCLOUD进行侦听:
这段代码:
for event in pygame.event.get():
if event.type == KEYDOWN:
if event.key == K_ESCAPE:
running = False
elif event.type == QUIT:
running = False
elif event.type == ADDENEMY:
new_enemy = Enemy()
enemies.add(new_enemy)
all_sprites.add(new_enemy)
会变成这样:
for event in pygame.event.get():
if event.type == KEYDOWN:
if event.key == K_ESCAPE:
running = False
elif event.type == QUIT:
running = False
elif event.type == ADDENEMY:
new_enemy = Enemy()
enemies.add(new_enemy)
all_sprites.add(new_enemy)
elif event.type == ADDCLOUD:
new_cloud = Cloud()
all_sprites.add(new_cloud)
clouds.add(new_cloud)
我们要把云朵加到all_sprites组和新的clouds组内。之所以要把云朵加到这两个组内是因为我们要用all_sprites来进行渲染,用clouds来调用update函数。你可能会问,我们为什么不直接把他们加到现有的enemies组中?我们不是一直在调用相同的update函数吗?原因是,我们不需要检测飞机是否撞上了云朵。我们的飞机应该能够完好无损地穿过云朵,而不是撞到云朵然后游戏结束。我们现在需要做的就是调用clouds组的update()方法。
成功!恭喜你!制作完成!
最终效果就如封面所示噢~有任何问题欢迎评论或在公众号(maquxueyuan)提问~返回搜狐,查看更多
责任编辑:
python 儿童 游戏_少儿编程分享:手把手教你用Python编写战斗机游戏(完)相关推荐
- 用python画小兔子_少儿编程分享:手把手教你用PYTHON编写兔獾大作战(一)
原标题:少儿编程分享:手把手教你用PYTHON编写兔獾大作战(一) 游戏制作 我们今天要制作的小游戏是Bunnies vs. Badgers (兔獾大作战).游戏中的兔子通过射箭抵御獾的进攻,从而保卫 ...
- python星星万花筒_少儿编程分享:码趣君教你用Python编写推星星游戏(完)
这是推星星游戏的最后一期了 希望每个学习了的同学都能制作出你自己的推星星游戏 记得巩固好知识噢~ Drawing the Map绘制地图 535. def drawMap(mapObj, gameSt ...
- 怎么用python做战斗机_少儿编程分享:手把手教你用Python编写战斗机游戏(四)
游戏分享:手把手教你用Python编写 战斗机游戏(四) 2018.1.25 飞机大战就到这里啦 你的飞机大战做出来了吗 加入图像 现在我们已经能够玩游戏了,但这个游戏丑确实有点丑.接下来,我们要把单 ...
- 怎么用python编贪吃蛇_少儿编程分享:手把手教你用PYTHON编写贪吃蛇(二)
原标题:少儿编程分享:手把手教你用PYTHON编写贪吃蛇(二) 检测和判断 无论我们制作的简单或者复杂的游戏 这都是最关键的两个部分 事件处理循环 61. while True: # 游戏主循环 62 ...
- python图形设计编程_少儿编程分享:手把手教你用Python制作艺术图片
原标题:少儿编程分享:手把手教你用Python制作艺术图片 在前面的几篇文章中,我们分享了一些用PyGame制作小游戏的教程.我们今天的分享使用的仍然是PyGame,只不过这次不是写游戏啦-我们要用P ...
- python俄罗斯方块编程思路_少儿编程分享:手把手教你用Python编写俄罗斯方块(十)...
www.codingmarch.com 游戏分享:手把手教你用 Python 编写 俄罗斯方块(十) 2017.12.28 这是俄罗斯方块的最后一章了 经历了这么多游戏 编写了这么多代码 你的心中是否 ...
- python代码示例图形-纯干货:手把手教你用Python做数据可视化(附代码)
原标题:纯干货:手把手教你用Python做数据可视化(附代码) 导读:制作提供信息的可视化(有时称为绘图)是数据分析中的最重要任务之一.可视化可能是探索过程的一部分,例如,帮助识别异常值或所需的数据转 ...
- python画图代码大全-纯干货:手把手教你用Python做数据可视化(附代码)
原标题:纯干货:手把手教你用Python做数据可视化(附代码) 导读:制作提供信息的可视化(有时称为绘图)是数据分析中的最重要任务之一.可视化可能是探索过程的一部分,例如,帮助识别异常值或所需的数据转 ...
- python在财务中的应用-【手把手教你】Python金融财务分析
微信公众号: 1. 货币时间价值 实际上numpy和scipy很强大,包含了计算各种财务指标的函数,可以直接调用,终值(fv).现值(pv).净现值(npv).每期支付金额(pmt).内部收益率(ir ...
最新文章
- python入门(七)
- 【EventBus】事件通信框架 ( 订阅类-订阅方法缓存集合 | 事件类型-订阅者集合 | 订阅对象-事件类型集合 )
- OFDM资料(待总结)
- matlab 基于GUI的PID研究
- Python基础语法-Python,Java,C++变量互换值的区别
- 中国PLC市场增长分析
- 你知道哪些苹果自家应用采用 Swift 语言编写吗?
- jclasslib插件_在IDEA利用断点debug+解析class文件+jclasslib插件
- Linux:文件系统和数据资料
- [SEO知识]如何通过SEO思维收割各大平台的流量?
- CentOS7 aarch64 arm平台sysbench安装及CPU、内存、IO测试
- python 矩阵和三角函数
- 如果你在犹豫要不要去外包公司,不妨看看这篇文章
- SQL Server ansi_null_default | ansi_null_dflt_on
- http的幂等性及幂等性
- 直流马达驱动_ADC_PWM加减速(STM32F4 CubeMX)
- POJ,ZOJ题目分类(多篇整合版,分类很细致,全面)
- php mysql开发实战 光盘_随书光盘-PHP开发实战1200例 | 软件库
- 艺术品经营单位备案申报材料和艺术品经营单位备案申请表格式
- scratch案例——深水炸弹