mygui初探(二)皮肤编辑器
mygui初探(二)皮肤编辑器
作者:游蓝海(http://blog.csdn.net/you_lan_hai)
mygui(官网http://mygui.info),是一个开源的游戏ui库,号称高速、易用、灵活,但这是不是真的——谁用谁知道。
1.前言
我觉得,对于程序员来说,最重要的信息,不是粘上一片代码,更重要的是说明背后的原因。我不喜欢别人在分析代码的时候,粘上大片代码,仅在里面夹杂着几行注释,不说明整个框架流程(虽然我以前干过,但以后尽量改吧)。
关于如何编译和使用mygui,我就不多说了,这些在mygui的官方wiki里有(http://www.ogre3d.org/tikiwiki/MyGUI),而且也比较简单。编译的过程中,会用到CMAKE工具,我建议学会这个工具的用法,以后做跨平台项目的时候会用上。
初探系列的文章,我只介绍基本原理和工具的用法,而且会尽量避免与官方文档的重复性。关于代码级别的用法,参考mygui官方wiki,虽然是英文的,但是尝试阅读英文是个好习惯。
2.皮肤编辑器(SkinEditor)概览
如下图,左侧页视图,有4个功能分页:皮肤(skin)、状态(states)、分割线(separators)、区域(regions),后面会分别介绍每个功能如何使用;中间部分显示一张纹理;右侧部分是功能的属性,如当前状态是皮肤,那么这里就可以编辑皮肤的名称,皮肤用到的图片。
3.皮肤(skin)
这部分功能比较简单,点击下面的create按钮或者右键菜单可以创建一个皮肤,在右侧的属性栏,可以修改皮肤的名称、皮肤使用的图片、以及设置使用区域的大小。
4.状态(states)
左侧列举了所有的状态图,默认全部禁用,你可以选择一个状态,在右侧的属性栏里对他启用(将visible设为true)。对于一张普通的图来说必须启用Normal状态,按钮需要启用Disable、Normal、Over、Pressed,选择按钮(CheckBox)需要启用所有的状态。选择一个状态后,可以在中间的图上,框选一个区域,表示该状态会用到这个位置的图。
5.分割线(separators)
分割线总共有4条,如果全部开启,意味着将一个区域会分成9块,即九宫格,当然你可以只开启一部分,从而形成三宫格或者其他宫格。分割线并不存档,只是决定了后续功能区域(regions)如何划分,而区域是需要存档的。
6.区域(regions)
区域才是真正起作用的部分,如果启用了所有的区域,那么这就是一个九宫格。注意区域里还有一个选项Text,用于按钮的文字显示区域。