Python第十五课-飞机大战6(课件)

2024-03-01
| 13页
| 258人阅读
| 90人下载
普通

内容正文:

少儿编程课 1 飞机大战6 飞机生命值 3 在之前的版本中,陨石碰到飞机,游戏立马结束,接下来我们为飞机添加生命值 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) 爆炸效果 7 爆炸效果的添加 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() # 指定爆炸的中心点 self.rect.center = center 创建爆炸精灵类,定义初始化方法 3 在初始化方法中定义一个用于表示图片下标的变量 # 当前图片的下标 self.frame = 0 def update(self): self.frame += 1 if self.frame == len(explosion_anim): self.kill() else: # 更换图片,达到帧动画的效果 self.image = explosi

资源预览图

Python第十五课-飞机大战6(课件)
1
Python第十五课-飞机大战6(课件)
2
Python第十五课-飞机大战6(课件)
3
Python第十五课-飞机大战6(课件)
4
Python第十五课-飞机大战6(课件)
5
Python第十五课-飞机大战6(课件)
6
所属专辑
相关资源
示范课
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。