美文网首页
飞机大战 engine.py

飞机大战 engine.py

作者: HHHHUA | 来源:发表于2018-08-07 20:08 被阅读97次

    """

    游戏引擎:

    """

    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

          本文链接:https://www.haomeiwen.com/subject/yuxzvftx.html