游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2819|回复: 3

想自己用c++和DX做一套UI.....求大侠们指点

[复制链接]

2

主题

13

帖子

13

积分

新手上路

Rank: 1

积分
13
发表于 2012-6-15 10:22:00 | 显示全部楼层 |阅读模式
希望大侠们指点下....有点不知道怎么下手

2

主题

10

帖子

70

积分

注册会员

Rank: 2

积分
70
发表于 2012-6-15 14:16:00 | 显示全部楼层

Re: 想自己用c++和DX做一套UI.....求大侠们指点

就是用面向对象那一套慢慢搞呗。刚开始可以只做基础的按钮类等,然后随用随加。初始架构不合理也没关系,很容易调整。比如基类Wnd,子类Btn,子类Edit,Wnd类中有子窗口列表m_subWnds,就可以轮询消息及render所有窗口了。

50

主题

236

帖子

454

积分

中级会员

Rank: 3Rank: 3

积分
454
发表于 2012-6-16 14:47:00 | 显示全部楼层

Re:想自己用c++和DX做一套UI.....求大侠们指点

一个简单的结构是这样的:

一:
定义2个抽象基类,一个作为图形渲染接口,另一个作为字体渲染接口,这两个接口由GUI的使用者进行实例化,而GUI的内部,则使用这些class对象进行渲染

二:
定义窗口基类(不允许实例化),让所有类型的窗口继承它
一开始把窗口类,按钮类实现出来就行了,等到整个系统结构稳定下来并可以正常工作后,再去慢慢实现其他类型的窗口

三:
定义一个GUIManager,用来初始化和管理整个UI系统,同时用于接收鼠标与按键事件,把这些事件发给主窗口

就是这样了,
我这有份特意提取的精简版的UI实现(1400行代码):
www.newmuhon.com/files/EasyGUI.rar

该项目是VS2008项目,其中简单的封装了DX9,可编译,可运行,自带图片文件


这里我有个建议,就是如果考虑把UI做大,那么最好让自己的UI能很好的支持脚本和XML布局,这个我感觉很重要(这个问题可以参考CEGUI)。

16

主题

32

帖子

50

积分

注册会员

Rank: 2

积分
50
发表于 2012-6-18 20:19:00 | 显示全部楼层

Re: 想自己用c++和DX做一套UI.....求大侠们指点

1. 列举几个要实现的基本的控件,从最原始的开始:ImageBox、Button、TextBox、EditBox等;
2. 想一想它们共同的属性是什么?
3. 抽象一个基类;
4. 逐个实现最基本的控件,你会发现一开始是最麻烦,但越到后面越简单;否则的话你的设计很可能出现大问题了。
5. 实现过程中不断地把共同属性提取出来放到基类里;
6. 最后你会发现再复杂的控件其实也可分解为若干个基本控件,只是组装的方式不一样。

先别管用什么画,甚至可以先用GDI,别花太多时间在DEBUG DX上;
最好使用boost库,里面的bind函数可以极大地简化event system的设计,你甚至会发现C#的UI也弱爆了。
如果需要跨平台,最好使用SDL库来获取鼠标键盘的输入。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-2-28 03:07

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表