资源简介

学习Python版的飞机大战的,里面含有飞机大战的全部素材及飞机大战源码

资源截图

代码片段和文件信息

from 飞机大战.plane_sprites import *


class PlaneGame(object):
    “““飞机大战主游戏类“““
    def __init__(self):
        “““游戏初始化“““
        # 1.创建游戏游戏窗口
        self.screen = pygame.display.set_mode(SCREEN_RECT.size)
        # 2.创建游戏时钟
        self.clock = pygame.time.Clock()
        # 3,调用私有方法,精灵和精灵组创建
        self.__create_sprites()
        # 4.设置定时器事件 -创建敌机  1s
        pygame.time.set_timer(CREATE_ENEMY_EVENT 1000)
        # 5.设置定时器事件 -创建子弹  0.5s
        pygame.time.set_timer(CREATE_BULLET_EVENT 500)

    def start_game(self):
        “““启动游戏“““
        while True:
            # 1.设置刷新帧率
            self.clock.tick(frame_PER_SEC)
            # 2.事件检测
            self.__event_handler()
            # 3.碰撞检测
            self.__check_collode()
            # 4.更新/绘制精灵组
            self.__update_sprites()
            # 5.更新显示
            pygame.display.update()

    def __create_sprites(self):
        “““精灵和精灵组创建“““
        # 创建背景精灵和精灵组
        bg1 = Background()
        bg2 = Background(True)
        self.back_group = pygame.sprite.Group(bg1 bg2)

        # 创建敌机的精灵组,因为精灵在定时器中会定时创建
        self.enemy_group = pygame.sprite.Group()

        # 创建英雄精灵和精灵组
        self.hero = Hero()
        self.hero_group = pygame.sprite.Group(self.hero)

    def __event_handler(self):
        “““事件检测“““
        # 获得所有事件
        event_list = pygame.event.get()

        # 遍历事件
        for event in event_list:
            # 1.判断是否是退出游戏
            if event.type == pygame.QUIT:
                self.__game_over()

            # 2.判断是否是创建敌机的定时器
            if event.type == CREATE_ENEMY_EVENT:
                # 1.创建敌机精灵
                enemy = Enemy()

                # 2.将敌机精灵添加到敌机精灵组
                self.enemy_group.add(enemy)

            # 3.判断用户按下的键是向左还是向右
            “““
            # 方法一:按一次触发一次
            if event.type == pygame.KEYDOWN:
                if event.key == pygame.K_LEFT:
                    # 向左移动
                    print(“向左移动“)
                if event.key == pygame.K_RIGHT:
                    # 向右移动
                    print(“向右移动“)
            “““
            # 方法二:按下会一直触发事件
            # 获取键盘按键元组
            keys_pressed = pygame.key.get_pressed()
            # 判断元组中对应的按键索引值是否是1
            if keys_pressed[pygame.K_RIGHT]:
                # 向右移动
                self.hero.speed = 4
            elif keys_pressed[pygame.K_LEFT]:
                # 向左移动
                self.hero.speed = -4
            else:
                # 不移动
                self.hero.speed = 0

            # 4.判断是否英雄发射子弹的定时器
            if event.type == CREATE_BULLET_EVENT:
                # 英雄发射子弹
                self.hero.fire()

    def __check_collode(self):
        “““碰撞检测“““
        # 调用碰撞检测方法
        # 检测敌机和子弹的碰撞,碰撞后都消失
        collide = pygame.sprite.groupcollide(self.hero.bullets self.enemy_group True True)
        # print(collide)
        # 检测敌机和英雄的碰撞,碰撞后英雄死亡
        enemies = pygame.sprite.spritecollide(self.hero self.enemy_group True)
        # 如果发生碰撞,英雄牺牲退出游戏
        if

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2018-09-22 19:20  Python版的飞机大战\
     目录           0  2018-09-22 19:19  Python版的飞机大战\images\
     文件        7444  2018-09-07 14:39  Python版的飞机大战\images\New Atlas.png
     文件       31443  2018-09-20 11:47  Python版的飞机大战\images\background.png
     文件      427573  2018-09-07 14:39  Python版的飞机大战\images\bg.png
     文件        2658  2018-09-07 14:39  Python版的飞机大战\images\bomb-1.gif
     文件        2067  2018-09-07 14:39  Python版的飞机大战\images\bomb-2.gif
     文件        5600  2018-09-07 14:39  Python版的飞机大战\images\bomb.png
     文件        8948  2018-09-07 14:39  Python版的飞机大战\images\btn_finish.png
     文件         122  2018-09-07 14:39  Python版的飞机大战\images\bullet-1.gif
     文件         151  2018-09-07 14:39  Python版的飞机大战\images\bullet-2.gif
     文件         401  2018-09-07 14:39  Python版的飞机大战\images\bullet-3.gif
     文件       23131  2018-09-07 14:39  Python版的飞机大战\images\bullet.png
     文件         490  2018-09-07 14:39  Python版的飞机大战\images\bullet1.png
     文件         498  2018-09-07 14:39  Python版的飞机大战\images\bullet2.png
     文件       29625  2018-09-07 14:39  Python版的飞机大战\images\button_nor.png
     文件       28998  2018-09-07 14:39  Python版的飞机大战\images\button_p.png
     文件        1678  2018-09-07 14:39  Python版的飞机大战\images\enemy-1.gif
     文件        2829  2018-09-07 14:39  Python版的飞机大战\images\enemy-2.gif
     文件       13927  2018-09-07 14:39  Python版的飞机大战\images\enemy-3.gif
     文件        2970  2018-09-07 14:39  Python版的飞机大战\images\enemy0.png
     文件        3423  2018-09-07 14:39  Python版的飞机大战\images\enemy0_down1.png
     文件        3863  2018-09-07 14:39  Python版的飞机大战\images\enemy0_down2.png
     文件        5305  2018-09-07 14:39  Python版的飞机大战\images\enemy0_down3.png
     文件        1730  2018-09-07 14:39  Python版的飞机大战\images\enemy0_down4.png
     文件        8117  2018-09-07 14:39  Python版的飞机大战\images\enemy1.png
     文件       10477  2018-09-07 14:39  Python版的飞机大战\images\enemy1_down1.png
     文件       11696  2018-09-07 14:39  Python版的飞机大战\images\enemy1_down2.png
     文件       13388  2018-09-07 14:39  Python版的飞机大战\images\enemy1_down3.png
     文件        3429  2018-09-07 14:39  Python版的飞机大战\images\enemy1_down4.png
     文件        9183  2018-09-07 14:39  Python版的飞机大战\images\enemy1_hit.png
............此处省略43个文件信息

评论

共有 条评论