程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> 設計自己的3D圖像引擎(2): WuguiEngine之項目結構組織

設計自己的3D圖像引擎(2): WuguiEngine之項目結構組織

編輯:關於C++

1. 項目文件夾組織:

本引擎中沒有把各個源文件放在不同的文件夾之下,只是使用了VS2008的Filter功能,虛擬的分出了一些文件夾,在項目浏覽器中可以比較方便的看到

上面的圖片是基本的一個組織情況:

Core裡面是一些核心的類, 比如說計時器等等

Document裡面就是文檔了

FX是Shader的代碼

Graphics裡面是渲染需要的類,裡面又有一些文件夾:

Effect是Shader的一些類

Camera是攝像機的一些類

Scene是場景管理相關的

Include裡面是將各個Filter裡面的頭文件分類組合起來,方便引用

這裡的這些頭文件對應著Filter裡面的內容,一個頭文件都引用了這個Filter裡面的所有頭文件.比如說WEExternal類就包含了需要引用外部庫函數的時候的類,其內容看起來是這樣的:

1: #ifndef _WEEXTERNAL_H
2: #define _WEEXTERNAL_H
3:
4: #include <map>
5: #include <algorithm>
6: #include <vector>
7: #include <list>
8: #include <string>
9: #include <iostream>
10: #include <iomanip>
11: #include <sstream>
12:
13: #include <windows.h>
14: #include <d3dx9.h>
15: #include <math.h>
16:
17: #endif

另外值得一提的是WuguiEngine.h包含了所有的.h文件,這個類是給外部的邏輯使用的

Interface包含了一些接口,比如說IRenderable, IUpdatable, IDisposed

Input顧名思義就是輸入相關的一些類了

IO包含文件系統和讀取文件等內容

MainLogic裡面是放測試代碼的,如果之後需要寫游戲也是可以把內容放在這裡,Mainlogic裡面的代碼和游戲引擎是分離的

Math就不用說什麼了,什麼碰撞檢測代碼,一些小的數學函數都在這裡

UI是給用戶看的一些界面,目前只放了一個在屏幕上面寫字的類進去

在這些Filter外面的類就是一些雜七雜八的東西了

2. 命名空間組織:

命名空間的組織和Filter的組織是類似的,這裡就不說太多了,僅僅列一下代碼:

該引擎主要包含下面的命名空間:

WuguiEngine          : 引擎的一些最基本的Interface以及頭文件

WuguiEngine::Core       : 引擎所必須的一些類,比如GameTime等等

WuguiEngine::Graphics     : 引擎的圖像相關的內容,包括場景管理以及其他的一些實現

WuguiEngine::IO        : 引擎輸入輸出的內容

WuguiEngine::Math        引擎的數學庫

WuguiEngine::Input      : 輸入相關的一些類

WuguiEngine::MainLogic     : 作為引擎實現的一個程序(可以是測試程序)

WuguiEngine::UI        : 引擎的界面的內容,包括菜單,顯示漢字等等

這篇文章就到此為止了,下一篇文章我將主要寫寫怎樣構建一個可重用的Windows(WEWindow)類以及主要的游戲主循環類BaseGame

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved