今日时间:07.6.26
最近一段时间,先放下D3D的学习,实践2D编程。做项目,并且完善自己的2D/3D引擎.
写该引擎,不是为了做出什么出色的东西,主要是为了巩固自己学到的C++知识,实践C++知识,不然,都忘球了,呵呵。
实践吧,把自己知道的知识都放进去.某些地方可以用现成的(比如windows相关的方面)把注意力放在 资源管理,C++技术,架构管理方面.
DL game engine reference document
大纲:
GUI
CORE
MATH
COMMON
DEBUG
Dlapplication 基类设计原则:
1:支持 显处改动标题
2:支持 初始化应用程序 前后的服务操作。(virtual)
3:支持 wndProc消息处理 的前后服务操作,(即自定义消息)(virtual)
4::游戏主循环 (virtual)
A:支持 主要游戏循环里的前后服务操作 (virtual)
B:在这里处理windows消息循环.
5:为了尽可能的简化程序的代码,增加可读性,游戏的执行流程尽可能的隐藏.对外仅暴露很简陋的接口即可.
Eg:if(game.init())
Game.run();
Return;
6:关于时间帧处理.
借处DLTimer去实现时间帧.定义最高帧频为100F/s. 最低的话就看不同的电脑配置而言了,
当没有到时间祯时。Sleep();
DLApplication 基类设计思想进化论:
1:但凡任何一个框架,框架的开发者都会提供简单代码使用示例,win32不例外,DX也不例外.
2:DLApplication 就是把win32的框加 封装进DLApplication类里面.
关于DLInput
Init();完成设备初始化.失败返回 false;
UpdateData();完成数据更新.并把鼠标及键盘的状态的改变,作为事件发出去.
GetCursorPos()查询接口,返回鼠标位置
GetKeyState()查询键盘某一按键状态.按下返回true.
关于DLGraphic.
Init();
DrawText(pos,RGb,”..”,…)
Render(handleTexture,dstRect,srcRect,)
关于TextureMgr
本系统支持对图片的引用计数,对于同一个名字的图片.在内存中只保留一份拷贝!!!
同时警告:不系统中所有的图片不能重名,不然会导致,后加载的同名图片不可能被加载
Void SetLoadPicPath(char*);
Handle LoadTextfromFile(“filename”)// 相对路径.注意,相对于本身内部保存的一个相对路径.,注意,
Handle QueueTexture(“filename”)查询一个
RemoveText(handle);
RemoveText(filename)// 不推荐!!!
关于Texture
CreatePicFormFile();
保存了filename
保存了filenDate
关于EventMgr
PostEvent()// 往事件管理器中加入一个事件.
Begin();
Next();
End();// 指向一个不存在的事件.
关于Event
// 仅支持鼠标
posX,poxY.
Type MouseMove,LbuttonDown,up, RightButtonDown,up