Breakout 準備工作

2021-10-19 10:48:10 字數 2130 閱讀 1165

1、簡介

本章節主要講述整個專案的基本框架,後面工作將會在這個基本框架上新增內容。

2、基本框架:

(1)超級遊戲類:包含所有的渲染和遊戲**,主要工作是管理遊戲**和將視窗**從遊戲中解耦。

(2)工具類:包含頻繁重用的opengl概念,如紋理、著色器等,主要工作是為兩個元素建立更加易用的介面。

(3)資源管理:主要工作是將工具類的檔案處理部分(著色器等程式都是放在單獨的檔案中,還包括紋理影象等檔案)抽離出來,來保障工具類的單一職責原則。注意:這個類是個靜態類(單一例項的靜態資源管理器),主要缺點是會損失oop屬性,並且喪失構造和析構的控制。

(4)程式:主要工作是建立視窗、設定一些opengl的初始狀態(開啟面剔除、混合功能,關閉深度測試)。

1、超級遊戲類

主要函式:

class game

;

狀態:用於跟蹤遊戲狀態,根據當前遊戲狀態決定渲染或者處理不同元素。

// 代表了遊戲的當前狀態

enum gamestate ;

2、工具類

著色器**:用於快速設定uniform值。

class shader

shader &use();

void compile(const glchar *vertexsource, const glchar *fragmentsource, const glchar *geometrysource = nullptr);

void setfloat (const glchar *name, glfloat value, glboolean useshader = false);

void setinteger (const glchar *name, glint value, glboolean useshader = false);

void setvector2f (const glchar *name, glfloat x, glfloat y, glboolean useshader = false);

void setvector2f (const glchar *name, const glm::vec2 &value, glboolean useshader = false);

void setvector3f (const glchar *name, glfloat x, glfloat y, glfloat z, glboolean useshader = false);

void setvector3f (const glchar *name, const glm::vec3 &value, glboolean useshader = false);

void setvector4f (const glchar *name, glfloat x, glfloat y, glfloat z, glfloat w, glboolean useshader = false);

void setvector4f (const glchar *name, const glm::vec4 &value, glboolean useshader = false);

void setmatrix4 (const glchar *name, const glm::mat4 &matrix, glboolean useshader = false);

private:

void checkcompileerrors(gluint object, std::string type);

};

紋理**:快速生成紋理影象。

class texture2d

;

註解:對於實現部分,起始就是相當固定的規則,裡面還有些基礎概念,不再說明。

3、資源管理

略,都是檔案操作,不再多講。

4、程式

略,固定操作,比較簡單。

C lua準備工作

ubuntu源裡的lua是5.0的.而最新的是5.2.如果只是學習lua語法什麼的直接apt get就好了.不過如果想做c lua的嵌入工作.就只能自己下原始碼編譯了 步驟 1.依賴的庫 readline,ncurses 這兩個庫可以從網上下原始碼然後編譯安裝.這樣其實最好了 如果不嫌源裡的舊.其實...

單據準備工作

虛擬機器 uap studio nc home 單據開發 基於studio的 單開發。擴充套件開發 對 單進行夥伴級拓展。報表平台 基於 單的分組統計和交叉統計。輕量化 交通費報銷開發。報表平台 語義模型 自由報表 基於模型的開發 實體 列舉及他們之間的關係。實體屬性 資料型別 約束 與業務介面的對...

python flask 準備工作

1 1搭建虛擬環境 安裝虛擬環境 sudo pip install virtualenv 1 建立目錄存放虛擬環境 mkdir home virtualenvs 2 開啟 bashrc檔案,並新增如下 vim bashrc 開啟後新增 export workon home home virtuale...