This commit is contained in:
parent
0b29079798
commit
bbd388fc96
55
play.py
55
play.py
|
@ -54,4 +54,57 @@ class MainScene(object):
|
|||
pygame.time.set_timer(self.ADDENEMY6, 8000) # 每隔 8000ms 触发
|
||||
pygame.time.set_timer(self.ADDENEMY1, 5000)
|
||||
|
||||
|
||||
# 绘制
|
||||
def draw_elements(self):
|
||||
if self.gameover:
|
||||
return
|
||||
# 绘制地图
|
||||
self.map.draw()
|
||||
# 绘制英雄飞机
|
||||
self.hero.draw()
|
||||
# 依次绘制英雄飞机每一颗发射出去的子弹
|
||||
# 英雄子弹的绘制在他自己的函数里了。
|
||||
# 绘制敌人飞机和飞机子弹
|
||||
for enemy in self.enemy_list:
|
||||
# 如果敌人已经死亡或者逃掉,清理出列表。不然会卡卡的要死的。但enemy删除后,他的子项
|
||||
# 也跟着删除了,bullet瞬间消失, 子弹在飞就难了,难道子弹也要子弹精灵?。
|
||||
# 找到解决办法了,把子弹也存到当前class里面,self.enemy_bullet_list][],
|
||||
# 在子弹的bullet.py里添加一个属性, 列如 self.outscene 子弹跑到屏幕外就设置成True,
|
||||
# 在这里判断,if bullet.outscent == True: enemy_bullet_liset.remove(bullet)
|
||||
# 这样跑出屏幕的子弹也自动删除,而敌机被击落后,打出的子弹在屏幕内不会删除,还能继续运动。
|
||||
# 需要在draw() 和 action ()里面都添加子弹绘制和动作函数。
|
||||
if not enemy.visible:
|
||||
self.enemy_list.remove(enemy)
|
||||
else:
|
||||
enemy.draw()
|
||||
# 绘制BOSS机
|
||||
for boss in self.boss_list:
|
||||
# boss_life = self.my_font.render('BOSS life:' + str(boss.HP),True,(0,0,255))
|
||||
# self.scene.blit(boss_life,(self.size[0]/2-200,0))
|
||||
hp_remain = boss.HP/1000
|
||||
if hp_remain < 0:
|
||||
hp_remain = 0
|
||||
# red = (255,0,0)
|
||||
# greed = (0,255,0)
|
||||
if hp_remain > 0.25:
|
||||
pygame.draw.line(self.scene, (0, 255, 0),
|
||||
(200, 0), (200+300*hp_remain, 0), 30)
|
||||
else:
|
||||
pygame.draw.line(self.scene, (255, 0, 0),
|
||||
(200, 0), (200+300*hp_remain, 0), 30)
|
||||
if boss.visible:
|
||||
boss.draw()
|
||||
# 绘制爆炸图片
|
||||
for bomb in self.bombs:
|
||||
if bomb.visible:
|
||||
bomb.draw()
|
||||
# 绘制玩家信息
|
||||
hero_info = self.my_font.render(
|
||||
'score:' + str(self.hero_score), True, (255, 0, 0))
|
||||
hero_life = self.my_font.render(
|
||||
"生命:" + str(self.hero.HP), True, (0, 255, 0))
|
||||
|
||||
self.scene.blit(hero_info, (0, 0))
|
||||
self.scene.blit(hero_life, (self.size[0] - 100, 0))
|
||||
|
||||
|
Loading…
Reference in New Issue