ZGE 起初是用OPENGL改写的HGE引擎,目前的版本号是0.6A
目前的定义是轻量级渲染引擎。 附件是ZGE引擎编译完成的部分。
引擎的接口如下 (暂定2009-1-11)
//引擎接口
如何使用的范例
目前只完成了core库,现在打算开始写help库。
目前的定义是轻量级渲染引擎。 附件是ZGE引擎编译完成的部分。
引擎的接口如下 (暂定2009-1-11)
//引擎接口
- class Root
- {
- public:
- //输入部分
- virtual bool Input_KeyDown(unsigned char key) =0 ;
- virtual bool Input_KeyUp(unsigned char key) = 0;
- virtual bool Input_ButtonDown(int button) = 0;
- virtual bool Input_ButtonUp(int button)= 0;
- virtual void Input_GetMouseMovement(int &dx, int &dy) = 0;
- virtual int Input_GetMouseWheelMovement() = 0;
- //资源部分
- virtual bool Resource_AttachPack(const char* filename, const char* password) = 0;
- virtual void Resource_RemovePack(const char* filename) = 0;
- virtual void Resource_RemoveAllPacks() = 0;
- virtual void* Resource_Load(const char* filename, unsigned int *size=0) = 0;
- virtual void Resource_Free(void *res) = 0;
- virtual char* Resource_MakePath(const char* filename) = 0;
- virtual char* Resource_EnumFiles(const char* wildcard) = 0;
- virtual char* Resource_EnumFolders(const char* wildcard) = 0;
- //系统部分
- virtual bool System_Initiate(LOOPFUNC update,LOOPFUNC render) = 0;
- virtual void System_Shutdown() = 0;
- virtual bool System_Start() = 0;
- virtual char* System_GetErrorMessage() = 0;
- virtual void System_Log(const char* format, ...) = 0;
- virtual void System_Configure(const zgestring& configfilename) = 0;
- //脚本部分
- virtual bool Script_Install(const zgestring& scriptfilename,const zgestring& scriptname) = 0;
- virtual void Script_UnInstall(const zgestring& scriptname) = 0;
- virtual int Script_GetIntVariable(const zgestring& scriptname,const zgestring& tokenname) = 0;
- virtual float Script_GetFloatVariable(const zgestring& scriptname,const zgestring& tokenname) = 0;
- virtual int* Script_GetIntArray(const zgestring& scriptname,const zgestring& tokenname,unsigned int* arraylength) = 0;
- virtual float* Script_GetFloatArray(const zgestring& scriptname,const zgestring& tokenname,unsigned int* arraylength) = 0;
- virtual char* Script_GetString(const zgestring& scriptname,const zgestring& tokenname,unsigned int* strlength) = 0;
- //随机数
- virtual void Random_Seed(int seed=0) = 0;
- virtual int Random_Int(int min, int max) = 0;
- virtual float Random_Float(float min, float max) = 0;
- //计时器
- virtual double Timer_GetTimeRightNow() = 0;
- virtual double Timer_GetLastFrameDelta() = 0; //上一帧花的总时间(两次更新开始的时间间隔)
- virtual double Timer_GetLastUpdataDelta() = 0; //上次更新用的时间
- virtual double Timer_GerLastRenderDelta() = 0; //上次渲染用的时间
- virtual int Timer_GetFPS() = 0;
- //音乐部分
- //空缺 将由WaNGs完成
- //2d图形部分
- virtual void Gfx_BeginScene2D() = 0;
- virtual void Gfx_BeginScene3D() = 0;
- virtual void Gfx_EndScene() = 0;
- virtual void Gfx_Clear() = 0;
- virtual void Gfx_RenderLine(vertex* line) = 0;
- virtual void Gfx_RenderTriple(vertex* triplelist,unsigned int triplecount) = 0;
- virtual void Gfx_RenderQuad(vertex* quadlist,unsigned int quadcount) = 0;
- //渲染状态管理
- virtual void GfxStat_SetTexture(const zgestring& texname) = 0;
- virtual void GfxStat_SetClipping(vertex* quad) = 0;
- virtual void GfxStat_SetTransform() = 0;
- //virtual void GfxStat_SetShader(void* shader) = 0;
- virtual void GfxStat_EnableState(ZgeGfxState) = 0;
- virtual void GfxStat_DisableState(ZgeGfxState) = 0;
- virtual void GfxStat_SetDefault() = 0;
- //...
- //文理部分
- virtual void Texture_Load(const zgestring& filename,const zgestring& texname) = 0;
- virtual void Texture_Free(const zgestring& texname) = 0;
- virtual int Texture_GetWidth(const zgestring& texname) = 0;
- virtual int Texture_GetHeight(const zgestring& texname) = 0;
- //释放接口
- virtual void Release() = 0;
- };
如何使用的范例
- #include "root.h"
- #pragma comment(lib,"debug/zge2d.lib")
- class Game
- {
- Root* root;
- public:
- Game()
- {
- root = getRoot(__ZGE2D_VERSION_);
- //。。。
- }
- int Update(){//....做一些更新
- };
- void Render(){//...做一些渲染工作
- root->Gfx_Clear();
- root->Gfx_BeginScene2D();
- //...do someting..for rendering
- root->Gfx_EndScene();
- };
- } game_process;
- int Update()
- {
- return game_process.Update();
- }
- int Render()
- {
- game_process.Render();
- return 1;
- }
- int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,INT)
- {
- Root* root = 0;
- if(root = getRoot(__ZGE2D_VERSION_))
- {
- if(root->System_Initiate(Update,Render))
- {
- root->System_Start();
- }
- }
- return 0;
- }
目前只完成了core库,现在打算开始写help库。
ZGE 0.6开发的任务分配与完成情况
ZGE 0.6开发的任务分配与完成情况
corivSky 写扩展库class ZgeMesh
基本目标将MD2文件转为引擎可消化的格式。
完成周期 1 周
Zoo.ed 改写核心引擎的脚本部分Root::Script_*() = 0;函数
使用LUA扩展脚本引擎
完成周期 1 周
该引擎下载地址:
http://zooserver.oicp.net/zoobbs/viewthread.php?tid=30&extra=page%3D1
源代码不放出来了。
因为bug多多啊~(*^__^*) 嘻嘻……放出来害人啊……
corivSky 写扩展库class ZgeMesh
基本目标将MD2文件转为引擎可消化的格式。
完成周期 1 周
Zoo.ed 改写核心引擎的脚本部分Root::Script_*() = 0;函数
使用LUA扩展脚本引擎
完成周期 1 周
该引擎下载地址:
http://zooserver.oicp.net/zoobbs/viewthread.php?tid=30&extra=page%3D1
源代码不放出来了。
因为bug多多啊~(*^__^*) 嘻嘻……放出来害人啊……