建议从python_飞机大战_main_py_一 开始看
import pygame
import random
import time
from background import *
from bullets import *
from Heroplan import *
from diren import *
from Boom import *
from scorebord import *
from jiemian import *
from boss import *
import os
# 主场景
class MainScene(object):
# 初始化主场景
def __init__(self):
# 场景尺寸
self.size = (512, 768)
# 场景对象
self.scene = pygame.display.set_mode([self.size[0], self.size[1]])
# 设置标题
pygame.display.set_caption("飞机大战-v1.0")
#等级
self.level = 1
# 创建地图对象
self.map = Background(self,self.level)
#英雄飞机
self.hero_life = 2
self.hero = HeroPlane(self,self.hero_life)
#创建多个敌机
self.enemy_list = [EnemyPlane(self,self.level) for _ in range(2)]
#创建爆炸对象
self.booms = [booms(self) for _ in range(9)]
#创建boss爆炸
self.bossboom = [booms(self,True) for _ in range(14)]
#创建游戏面板
self.pause = False #暂停按钮
self.scoreboard = ScoreBoard(self)
#创建游戏开始界面
self.activity = JieMian(self)
self.game_start = True
self.game_end = False
#创建敌人飞机
self.boss = Boss(self,self.level)
#创建间隔
self.jiange = [0,300]
#jiange[1] = 0 控制英雄飞机死亡复活间隔
#jiange[2] = 500 控制等级显示时长
# 绘制
def draw_elements(self):
self.map.draw()
#绘制英雄飞机
self.hero.draw()
#依次绘制英雄飞机每一颗发射出去的子弹
for bullet in self.hero.bullets:
if bullet.visible:
bullet.draw()
#绘制敌人boss飞机和飞机子弹
self.boss.draw()
#绘制boss血条
self.boss.blood_bar()
for bullet in self.boss.bullets:
if bullet.visible:
bullet.draw()
for plane in self.enemy_list:
plane.draw()
#绘制爆炸图片
for boom in self.booms:
if boom.visible:
boom.draw()
#绘制boss爆炸图片
for boom in self.bossboom:
if boom.visible:
boom.draw()
#绘制得分界面
self.scoreboard.prep_score()
self.scoreboard.prep_distance()
#绘制暂停按钮
self.scoreboard.prep_pause()
# 动作
def action_elements(self):
self.map.action()
#计算距离数
self.scoreboard.fly_action(self.scoreboard.siwang)