飞机大战 engine.py

"""

游戏引擎:

"""

import pygame, model, random

# 自定义一个事件

ENEMY_CREATE = pygame.USEREVENT

pygame.time.set_timer(ENEMY_CREATE, 2000)

class GameEngine:

"""

    游戏引擎"""

    def __init__(self):

# 初始化函数:控制界面初始化操作

        pygame.init()

self.screen = pygame.display.set_mode(model.SCREEN_SIZE)

self.clock = pygame.time.Clock()

self.enemys = pygame.sprite.Group()

self.resources = pygame.sprite.Group()

def start(self):

self.create_scene()

self.check_event()

def create_scene(self):

# 创建游戏场景

        self.bg1 = model.BackgroundSprite("./images/bg3_0.jpg")

self.bg2 = model.BackgroundSprite("./images/bg3_0.jpg", next=True)

self.hero = model.HeroSprite("./images/plane.png")

self.resources.add(self.bg1, self.bg2, self.hero)

def update_scene(self):

# 背景和英雄飞机精灵组

        self.resources.draw(self.screen)

# 敌机精灵组

        self.enemys.draw(self.screen)

# 子弹精灵组

        self.hero.bullets.draw(self.screen)

# 更新屏幕

        self.resources.update()

self.enemys.update()

self.hero.bullets.update()

def check_collide(self):

# 碰撞检测

        pygame.sprite.groupcollide(self.hero.bullets, self.enemys, True, True)

e = pygame.sprite.spritecollide(self.hero, self.enemys, True)

if len(e) >0:

self.hero.kill()

pygame.quit()

exit()

def check_event(self):

# 事件监听

        self.clock.tick(24)

self.event_list = pygame.event.get()

key_down = pygame.key.get_pressed()

if len(self.event_list) >0:

for eventin self.event_list:

if event.type == pygame.QUIT:

pygame.quit()

exit()

if event.type == ENEMY_CREATE:

# 创建敌方飞机

                    enemy = model.EnemySprite()

self.enemys.add(enemy)

if key_down[pygame.K_LEFT]:

print("向左移动。。。。。")

self.hero.rect.x -=5

        if key_down[pygame.K_RIGHT]:

print("向右移动。。。。。")

self.hero.rect.x +=5

        if key_down[pygame.K_UP]:

print("向上移动。。。。。")

self.hero.rect.y -=5

        if key_down[pygame.K_DOWN]:

print("向上移动。。。。。")

self.hero.rect.y +=5

        if key_down[pygame.K_SPACE]:

print("空格键:开火。。。")

self.hero.fire()

pygame.display.update()

self.check_collide()

self.update_scene()

self.check_event()

# pygame.quit()


res = GameEngine()

res.start()

你可能感兴趣的:(飞机大战 engine.py)