首页 > 代码库 > 实时控制软件第四周作业

实时控制软件第四周作业

  • 冰球游戏系统模块设计:
  1. Gui窗口模块:负责整个游戏界面的绘制,作为整个游戏软件的运行载体,目前计划采用Qt窗体程序进行游戏主窗口的创建;
  2. OpenGL模块:在Gui窗口中进行游戏元素的绘制;
  3. 物理引擎模块:负责进行物理逻辑的计算,主要是碰撞和速度;
  4. 定时器模块:负责控制绘制频率;
  5. 游戏元素
  • AI逻辑的处理:

   主要是怎样使机械手AI判断球的轨迹并进行拦截。

 

  • 具体设计如下:

  模块接口:所有模块不应该使用构造函数和析构函数以保证按一定的顺序初始化和退出。使用StartUp和ShutDown代替构造函数和析构函数。

 1 #include <QObject>
 2 
 3 class BaseManager : public QObject
 4 {
 5     Q_OBJECT
 6 
 7 public:
 8 
 9     virtual void StartUp() = 0;
10     virtual void ShutDown() = 0;
11 
12 public slots:
13 
14     virtual void Update() = 0;
15 };

  OpenGL管理器:大致框架如下,具体细节待完善。

 1 #include <QOpenGLWidget>
 2 #include "basemanager.h"
 3 
 4 class OpenGLManager : public QOpenGLWidget , public BaseManager
 5 {
 6     Q_OBJECT
 7 
 8 public:
 9 
10     static OpenGLManager*   GetInstance();
11 
12     void             StartUp();
13 
14     void             ShutDown();
15 
16 public slots:
17 
18     void             Update();
19 
20 protected:
21 
22     void             paintEvent(QPaintEvent *event) Q_DECL_OVERRIDE;
23 
24 private:
25 
26                    OpenGLManager();
27 
28     static OpenGLManager*   m_pInstance;
29 
30 };

  

实时控制软件第四周作业