冰球游戏的初步设计
简介
这个游戏要实现的功能:简单描述为在在一个范围内用两个击球器,击打一个冰球,并模拟出接近现实的物理运动规律。
主要模块及其功能
- gui模块:
这个模块是负责与用户交互的:包括图形输出与用户操作的输入
可以利用qt进行UI和图形的绘制;
qt的窗体程序是事件响应的机制,对应于用户的输入 - 物理引擎模块
计划使用Box2d完成物理引擎的功能:Box2d是一个单纯的仿真刚体平面运动的平台无关的物理引擎库,可以实现,速度,加速度,碰撞,摩擦等特性,很多2d游戏引擎都使用Box2d作为物理引擎。
物理引擎抽象出一个物理世界管理者的概念,用于管理所有的运动。它应当接收外部控制信号(再这里即是给击球器设定速度,加速度等信息),不断更新所有对象的运动状态。
所有物理对象的状态有都会开放给GUI模块,用于输出图形。 - 实时控制系统
该模块是在Xenomai实时环境下,更新物体的运动目标和计算相应的运动状态,传递给物理引擎。控制系统与物理引擎相结合,完成对物体运动的全部控制。 - 游戏策略系统
我理解为一个AI击球手,它向控制系统发出控制命令。
这一系统的功能也可由用户代替。