美文网首页
飞机大战 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

    """ 游戏引擎: """ import pygame, model, random # 自定义一个事件 ENEM...

  • Python打飞机(飞机大战)

    敌机和主机 发子弹 连发子弹 飞机大战(加音乐代码) 飞机大战代码: 精灵组 飞机大战敌机 飞机大战背景 上下左右...

  • 飞机大战

    飞机大战 导入模块的三种方式 import pygamefrom 模块名 import *(代表所有)from 模...

  • 飞机大战

    import pygame import time pygame.init() #1. 创建窗口 screen =...

  • 飞机大战

    这次呢,让我们重温一下儿时的乐趣,用Python做一个飞机大战的小游戏。接下来,让我们一起走进“飞机大战”。一.确...

  • 飞机大战

    飞机大战 导入模块的三种方式 import pygamefrom 模块名 import *(代表所有)from 模...

  • 飞机大战

    一款世界大战空战主题怀旧版经典飞机大战! 还记得小时候街机电玩城的打飞机游戏吗? 不久的未来,大量的外星飞船突袭地...

  • 飞机大战

  • 飞机大战

    首先:安装pygame其次:需要一个编辑器本人使用的是sublime编辑器 安装pygame: 验证安装: 定时器...

  • 飞机大战

    安装pygame 1,首先安装pygame 2,验证是否安装pygame 如果安装上那就完成下列步骤,完成飞机大战...

网友评论

      本文标题:飞机大战 engine.py

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