- 1、本文档共15页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Python少儿编程 进阶篇
公开课 优质课 适用
如遇课件中视频、音频无法正常播放,请在网站联系上传者索取完整版本。
如需与课件配套的教学设计、随堂练习,请与上传者联系索取。
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.
少儿编程课
飞机大战6
飞机生命值
在之前的版本中,陨石碰到飞机,游戏立马结束,接下来我们为飞机添加生命值
1
首先在初始化飞机的时候,给定血量100
2
当陨石和飞机相碰,飞机扣除20点血量如果血量扣完了,则游戏结束
3
当陨石和飞机相碰,陨石消失,为防止陨石数量减少,在生成一个陨石出来
self.hp = 100
# 检测飞机和陨石之间的碰撞hits = pygame.sprite.spritecollide(player, all_meteorite, True, pygame.sprite.collide_circle)for hit in hits: player.hp ‐= 20 # 如果碰撞,则游戏结束 if player.hp == 0: running = False
# 检测飞机和陨石之间的碰撞hits = pygame.sprite.spritecollide(player, all_meteorite, False, pygame.sprite.collide_circle)for hit in hits: player.hp -= 20 # 新产生一个陨石并加入两个精灵组 meteorite = Meteorite() all_sprites.add(meteorite) all_meteorite.add(meteorite)# 如果碰撞,则游戏结束 if player.hp == 0: running = False
简化代码
对于这种重复性出现的代码,我们可以用方法替代重复
3
然后在上述三个对应的地方调用new_meteorite()方法就可以了
# 新产生一个陨石并加入两个精灵组 meteorite = Meteorite() all_sprites.add(meteorite) all_meteorite.add(meteorite)
这时,你可能发现了,产生一个新陨石,并把陨石加入到陨石和全部精灵组代码在程序中出现了好几次
# 新产生一个陨石并加入两个精灵组new_meteorite(): meteorite = Meteorite() all_sprites.add(meteorite) all_meteorite.add(meteorite)
1、循环8次,生成8个陨石时
2、子弹打掉陨石时
3、陨石和飞机碰撞的时
2
1
将飞机生命值画到屏幕中
使用之前的draw_text方法,将飞机剩余血量绘制到屏幕左上角
运行程序,效果如下:
2
1
# 绘制生命值draw_text(screen, hp:+str(player.hp), 18, 30, 10)
爆炸效果
爆炸效果的添加
2
爆炸效果也是精灵,不同与子弹等精灵,爆炸精灵不会沿x、y轴运动,它最大的特点就是图片在一直变化,组成帧动画的效果,如我们经常见到的GIF动态图
1
将素材准备好,可以自行选择,这里以蓝色为例
爆炸精灵类的创建
2
将素材存入列表
1
explosion_anim = []for i in range(9): img = pygame.image.load(img/picV382_boom_baiYin_00 + str(i) + .png) explosion_anim.append(img)
# 爆炸效果class Explosion(pygame.sprite.Sprite): def __init__(self, center): pygame.sprite.Sprite.__init__(self) # 初始图片为爆炸的第一张图 self.image = explosion_anim[0] self.rect = self.image.get_rect() # 指定爆炸的中心点
您可能关注的文档
- python编程 一阶第07课 7课 while循环 课件 .pptx
- python编程 一阶第11课 排列小星星 课件 .pptx
- python编程教学 二阶第02课 神奇的“圆” 课件 .pptx
- python编程教学 二阶第05课 春联 课件 .pptx
- python编程教学 二阶第06课 新年贺卡 课件 .pptx
- python编程教学 二阶第08课 奥运五环 课件 .pptx
- python编程教学 二阶第10课 多彩同心圆 课件 .pptx
- python编程教学 二阶第11课 花蟒蛇 课件 .pptx
- python编程教学 二阶第20课 案例考题(三)课件 .pptx
- python编程教学 三阶第05课 高阶函数 课件.pptx
文档评论(0)