飞机大战
------------------------------------------------------------------------------------------------
手工整理黑马程序员版飞机大战
部分代码展示,其余代码资源获取地址:https://download.csdn.net/download/weixin_56410185/85446705
-----------------------------------------------------------------------------------------
在game里导入游戏核心模块
game存放游戏核心
game_items存放游戏元素模块
game_hud存放游戏控制面板/提示信息模块
game_music存放游戏音乐控制模块
-----------------------------------------------------------------------------------------
"""游戏核心模块"""
import pygame
from game_items import *
from game_hud import *
from game_music import *
import random
class Game(object):
"""游戏核心类"""
def __init__(self):
# 1.游戏主窗口
self.main_window = pygame.display.set_mode(SCREEN_RECT.size)
pygame.display.set_caption("飞机大战") # 设置窗口的标题
# 2.游戏状态属性
self.is_game_over = False # 游戏结束标记
self.is_game_pause = False # 游戏暂停标记
# 3.游戏精灵组
self.all_group = pygame.sprite.Group() # 存放所有界面上的精灵
self.enemies_group = pygame.sprite.Group() # 敌机精灵组
self.supplies_group = pygame.sprite.Group() # 道具精灵组
# 4.创建精灵
# 创建背景精灵,向下方移动
self.all_group.add(Background(False), Background(True)) # 星空背景精灵
# 创建游戏控制面板
self.hud_panel = HUDPanel(self.all_group)
# 创建英雄飞机精灵
self.hero_sprite = Hero(self.all_group)
self.hud_panel.show_bomb(self.hero_sprite.bomb_count)
# 初始化敌机
self.create_enemies()
# 初始化道具
self.create_supply()
# 音乐播放器
self.player = MusicPlayer('game_music.ogg')
self.player.play_music()
def reset_game(self):
"""重置游戏数据"""
self.is_game_over = False
self.is_game_pause = False
# 重置面板
self.hud_panel.reset_panel()
# 重置英雄飞机位置
self.hero_sprite.rect.midbottom