python--飞机大战
发布时间:2023-02-16 14:21:38 所属栏目:Python 来源:互联网
导读:实现功能: 1:飞机的移动,发射子弹,手雷,生命值,生命条 2:敌飞机有3种形态(小,中,大)不同的飞机大小不一样,生命值不一样,爆炸动画也不一样 3:背景音乐,子弹击中敌机会发生碰撞的爆炸动画和音效 4:随机产生补给(双射子弹和全屏炸弹) 5:难度
# 碰撞检测 检测子弹是否击中敌机 for b in bullets: if b.active: b.move() screen.blit(b.image,b.rect) enemy_hit = pygame.sprite.spritecollide( b,False,pygame.sprite.collide_mask) if enemy_hit: b.active = False for each in enemy_hit: each.hit = True each.energy -= 1 if each.energy == 0: each.active = False # 绘制敌方大型机 for each in big_enemies: if each.active: each.move() if each.hit: screen.blit(each.image_hit,each.rect) each.hit = False else: if switch_plane: screen.blit(each.image1,each.rect) else: screen.blit(each.image2,each.rect) # 绘制血条 pygame.draw.line(screen,BLACK,(each.rect.left,each.rect.top - 5),(each.rect.right,2) energy_remain = each.energy / BigEnemy.energy if energy_remain > 0.2: energy_color = GREEN else: energy_color = RED pygame.draw.line(screen,energy_color,(each.rect.left + each.rect.width * energy_remain,2) if each.rect.bottom == -10: enemy3_fly_sound.play(-1) each.appear = True # 离开画面,关闭音效 if each.rect.bottom < -10 and each.appear: enemy3_fly_sound.stop() each.appear = False else: # 毁灭 if e3_destroy_index == 0: enemy3_down_sound.play() if not(delay % 2): screen.blit(each.destroy_images[ e3_destroy_index],each.rect) e3_destroy_index = (e3_destroy_index + 1) % 6 if e3_destroy_index == 0: enemy3_fly_sound.stop() (编辑:十堰站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |