用pygame实现的2d弹珠游戏.
主要框架如下图所示:
Client
程序入口,从这里开始游戏。
resource
图片字体等资源
GameCtrl
Gamelogic 对游戏的数据进行控制,例如球的下一个位置,是否发生碰撞,速度如何。
主要接口:
update():对游戏数据更新,下一次Section的回调就知道应该在什么位置绘图
logic_start(): 游戏开始或者重新开始的时候初始化数据。
logic_end(): 游戏重新开始的时候销毁以前数据
save () : 保存游戏数据到文件,下次可以继续接着玩
load(): 读取文件信息, 重新开始上次的游戏
主要类:
Ball(): 对球的数据和操作封装
Brick(): 对砖的行为封装
CtrlBar(): 对玩家控制的Bar进行封装
BrickCreator(): 对砖块的生成进行封装
GameCtrl 对游戏输入,控制调用Section。
主要接口:
add_section(): 加入新的section,绘制新的东西
goto_section():被触发,游戏转移到绘制另一个section中,例如在游戏中鼠标右键,触发到一个右键界面出现。
start_main_loop(): 游戏的主循环
Section
GameSection(): 定义所有Section的超类
主要接口:
handle_key(): 处理用户键盘输入接口
handle_mouse(): 处理用户鼠标输入接口
update(): 从logic中获取更新的数据,用来下一步的绘图
render(): 根据所拥有的image等资源,绘制图像
menu Section:从GameSection继承,定义进入游戏的界面及按键行为。
主要函数:
Render(): 画出menu
ball section(): 游戏的主要的Section,绘制游戏过程中的元素
主要函数:
update(): 从Logic中获取数据,用来绘图
render(): 绘图
handle(): 处理用户输入。
1