简介
pygame 如何通过键盘来控制游戏中的元素呢?元素之间是如何进行碰撞检测的呢?
阅读完本节你就很清晰了,此外本文还会整理出 pygame 开发游戏的通用整体结构,该系列后续的内容都以这个结构来编写。
整体结构
随着游戏项目的复杂化,有必要整理一下代码,形成一个统一的风格。
import pygame as pg
class Game:
# 初始化窗口、计数器
def __init__(self):
pass
# 开启新的游戏
def new(self):
pass
# 游戏中的大循环
def run(self):
pass
# 更新
def update(self):
pass
# 事件
def events(self):
pass
# 绘制界面
def draw(self):
pass
# 游戏启动 / 开始画面的钩子函数
def show_start_screen(self):
# game splash/start screen
pass
# 游戏结束 / 继续的钩子函数
def show_go_screen(self):
pass
# 入口逻辑
g = Game()
g.show_start_screen()
while g.running:
g.new()
g.show_go_screen()
pg.quit()
将不同的步骤封成不同的方法,这样让 Game 类会简单直观很多,不同方法的细节如下
在 __init__
中,初始化各种基本对象,如 pygame 对象、计数器对象等待
# main.py/Game
def __init__(self):
# 初始化窗口、计数器
pg.init()
pg.mixer.init()
self.screen = pg.display.set_mode((WIDTH, HEIGHT))
pg.display.set_caption(TITLE)
self.clock = pg.time.Clock()
self.running = True
在 new () 方法中,新游戏开始时,进行元素的初始化,并调用 run () 方法,运行游戏的主循环。
# main.py/Game
# 开启新的游戏
def new(self):
self.all_sprites = pg.sprite.Group()
self.player = Player()
self.all_sprites.add(self.player)
self.run()
run () 方法就很简单了