標籤:paint 作業 pen protected tar err manage 邏輯 處理
- Gui視窗模組:負責整個遊戲介面的繪製,作為整個遊戲軟體的運行載體,目前計劃採用Qt表單程式進行遊戲主視窗的建立;
- OpenGL模組:在Gui視窗中進行遊戲元素的繪製;
- 物理引擎模組:負責進行物理邏輯的計算,主要是碰撞和速度;
- 定時器模組:負責控制繪製頻率;
- 遊戲元素
主要是怎樣使機械手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 };
即時控制軟體第四周作業