自学python实例_飞机大战_3_代码讲解

开头附上传送门
自学python实例_飞机大战_1_开始准备篇
自学python实例_飞机大战_2_纯代码篇
代码以及素材

  1. 创建工程目录:
    自学python实例_飞机大战_3_代码讲解_第1张图片
  2. 准备基础工作:
import pygame
from plane_spriter import *
class PlaneGame(object):
	"""飞机大战游戏"""
	def start_game():
		print("游戏开始")
if __name__ = "__main__":
    # 创建游戏对象
    game = PlaneGame()
    # 启动游戏
    game.start_game()

这里我们就准备好了基础工作,接下来我们开始构思该如果完成一个飞机大战简单的项目.
(1)创建好游戏窗口
(2)加入第一个精灵背景图
(3)设置加入我们第二个精灵,飞机
(4)使用两张背景图移动,实现飞机飞行
(5)通过键盘实现飞机的移动
(6)设置加入我们第三个精灵,敌机
(7)采用定时器事件,使飞机每格一秒出现
(8)设置加入第四个精灵,导弹
3.重点代码介绍::

    def __creat_spriter(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)

bg1 和 bg2 分别是两张相同的背景图,背景图大小就是将来游戏窗口的大小480x700,所以bg1位置在(0, 0) bg2位置在(0, -700)并且同时同速向下,当bg1到达(0, 700)时会立刻到(0, -700)的位置,这样就实现了背景的移动.

    def start_game(self):
        print("游戏开始...")
        while True:
            # 1.设置刷新频率
            self.clock.tick(FRAME_PER_SEC)
            # 2.事件监听
            self.__event_handler()
            # 3.碰撞检测
            self.__check_collide()
            # 4.更新、检测精灵组
            self.__update_spriter()
            # 5.更新显示
            pygame.display.update()

通过这样的方式,来调用函数,不要直接在这里写.

# 1.子弹摧毁敌机
pygame.sprite.groupcollide(self.hero.bullets, self.enemy_group,True,True)
# 2.敌机摧毁英雄
enemies = pygame.sprite.spritecollide(self.hero, self.enemy_group,True)
# 判断列表是否有内容
if len(enemies) > 0:
#让英雄牺牲
self.hero.kill()
#结束英雄
PlaneGame.__game_over()

这两个方法是pygame里面咱们提供的
自学python实例_飞机大战_3_代码讲解_第2张图片这是用来存放精灵的地方,可以通过名字知道每一个类的功能,首先要创建一个GameSprite的父类,下面的其他精灵通过继承父类的方式来进行编写,如果父类中的方法或者属性不够或者不同的话,还可以直接重新修改.

你可能感兴趣的:(python)