实现游戏中使用的界面库-分享想法

枫舞的季节 2010-09-29 04:27:04
如何实现游戏中的界面,大家可能都想自己试一试。
第一 消息的处理
   MFC 中的消息处理是这样的。
1 创建线程的slot 。
2 创建窗口类,将之设置如线程槽(slot),将之和ThreadId 对应
3 设置 Hook ,当窗口被创建的时候,可以捕捉到。
4 捕捉到窗口创建的时候,取出线程slot 中的窗口类,将它和窗口句柄放到一个结构中,然后加入全局的map中。
5 在WM_CREATE 来到的时候,从全局map 中取出 窗口类,然后 根据不同的消息调用 窗口类中的消息映射。

根据 MFC 的消息处理 我们可以形成自己的一套库。

第二 窗口的控件。
所有控件都需要处理,鼠标移到对象上,鼠标按下,鼠标弹起这些事件。

第三 绘图
绘图都是用Direct Draw

画线算法,椭圆算法,填充算法,渐变算法,等等,大家都以用学过的图形学上的算法来练习一下。至于三维算法,可以借助Direct3D 或者自己通过图形学上贝塞尔曲线来绘制三维曲面什么的。通过光照模型来绘制光照效果。




...全文
298 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
枫舞的季节 2010-10-08
  • 打赏
  • 举报
回复
DXUT 提供了一个不错的可以直接访问显存的接口,而且提供了3D图形库,但是毕竟是微软的东西,不可能在其他的平台也可以直接使用。我们要做的是一个 好用的 窗口类库(类似MFC,BCB),提供图形接口的库。
副组长 2010-10-02
  • 打赏
  • 举报
回复
DXUT不够吗,这不是都能已经做好现成的了,还是在DXUT基础上弄?
lang528 2010-10-02
  • 打赏
  • 举报
回复
GDI是不错的图形接口
sniper1986007 2010-10-02
  • 打赏
  • 举报
回复
不错不错
这两天也在弄这个
还挺头大的呢
枫舞的季节 2010-09-29
  • 打赏
  • 举报
回复
DirectUI 实现原理是,不使用窗口,所有的绘制都在一个窗口中进行。
然后将原来的 Button Lbl Edit ListBox ComboBox Tree CtrlList 等等都自己实现一个复制品。
我们这里实现是类似的:
我们可以做的是用各种样式(或者形状)绘制我们想创建的对象。可以任意的选择绘制的库,如果不做游戏的话,可以将绘制的库修改为GDI ,GDI+,OpenGL 等。对象呢:大家都从一个 比如 CBaseObject 对象派生,然后这个基类规定一些公共类需要的属性,位置,大小,文字,父窗口,父对象,一些虚函数,可以用来派生类重载...还有就是消息映射。将MFC 的搬过来吧。
我们用别人的库用的太多了。自己写一个吧。
hankcs 2010-09-29
  • 打赏
  • 举报
回复
有意思,能解释下跟DirectUI有什么不同吗
枫舞的季节 2010-09-29
  • 打赏
  • 举报
回复
游戏很好玩,但是自己做的机会不多。如果自己能够实现一个库,然后经过岁月积累,我想会用的得心应手,因为可以优化,再优化...。不如我们从最简单的游戏开始。
Q446512799 2010-09-29
  • 打赏
  • 举报
回复
我想学游戏0_0
枫舞的季节 2010-09-29
  • 打赏
  • 举报
回复
自己顶。。。。。。。。。。。。。
枫舞的季节 2010-09-29
  • 打赏
  • 举报
回复
不使用所谓的图像引擎,想要实现自己的一套windows 程序设计架构,类MFC ,但可以很灵活的控制界面,而且
可以将这套架构移植到各种不同的平台,比如Linux ,使用 OpenGL,因为C++部分是可以移植的,而图像处理可以通过不同平台提供的不同的图形库来处理,关键的地方是 图形绘制的算法是通用的。
傻X 2010-09-29
  • 打赏
  • 举报
回复
学习,楼主用什么图象引擎?楼主是搞游戏的么?有没有什么作品分享下...

19,469

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧