目录
1. 明确主程序职责
- 一个游戏主程序的 职责 可以分为两个部分:
游戏初始化
游戏循环 - 根据明确的职责, 设计 PlaneGame 类如下:
提示 根据 职责 封装私有方法, 可以避免某一个方法的代码写得太过冗长
如果某一个方法编写的太长, 既不好阅读, 也不好维护!
- 游戏初始化 ---- __init__() 会调用以下方法:
2. 实现飞机大战主游戏类
2.1 明确文件职责
- plane_main
- 封装 主游戏类
- 创建 游戏对象
- 启动游戏
- plane_sprites
- 封装游戏中 所有 需要使用的 精灵子类
- 提供游戏的 相关工具
代码实现
- 新建 plane_main.py 文件, 并且设置为可执行
- 编写 继承代码
class PlaneGame(object):
"""飞机大战祝游戏"""
def __init__(self):
print("游戏初始化")
# 1. 创建游戏的窗口
self.screen = pygame.display.set_mode((480, 700))
# 2. 创建游戏的失踪
self.clock = pygame.time.Clock()
# 3. 调用私有方法, 精灵和精灵组的创建
self.__create_sprites()
def __create_sprites(self):
pass
def start_game(self):
print("游戏开始...")
2.2 常量
- 变量 ---- 不变化的量
- 变量 ---- 可以变化的量
应用场景:
- 在开发时, 可能会需要使用 固定的数值, 例如 屏幕的高度 是 700
- 这个时候, 建议 不要 直接使用固定数值, 而应该使用 常量
- 在开发时, 为了保证代码的可维护性, 尽量不要使用 魔法数字
常量的定义
- 定义 常量 和 定义 变量 的语法完全一样, 都是使用 赋值语句
- 常量 的 命名 应该 所有字母都使用大写, 单词与单词之间使用下划线连接
提示: Python 中并没有真正意义的常量, 只是通过命名的约定 ---- 所有字母都是大写的就是常量, 开发时不要轻易的修改!
代码调整
- 在 plane_sprites.py 中增加常量定义
# 定义屏幕大小常量
SCREEN_RECT = pygame.Rect(0, 0, 480, 700)
# 刷新的帧率
FRAME_PER_SEC = 60
.......
# 1.创建游戏的窗口
self.screen = pygame.display.set_mode(SCREEN_RECT.size)