游戏开发中,经常会使用到很多有关界面的控件,这些都属于UI控件。
所有UI控件的基类都继承Widget类,这个类是节点类的一种,若要自定义UI控件,继承这个类是必须的。
Widget类里包含了:
FocusDirection 控件焦点方向
PositionType 布局系统中的控件位置类型
SizeType 布局系统中的控件尺寸类型
TouchEventType 触摸事件类型
TextureResType 纹理资源类型
BrightStyle 控件的高亮属性
ccWidgetTouchCallback 控件触摸事件回调
ccWidgetClickCallback 控件点击事件回调
ccWidgetEventCallback 空间用户定制事件等(与CocosStudo一起使用)
同时还包含了这些属性的各种相关方法,功能十分强大,由于太多不一一列出来,有兴趣可以查看官方API。
那这些控件要怎样排版呢?这个时候就涉及到Layout类,一般来说,我们称其为页面视图控件,每一个页面是一个Layout类。
Layout类中的常用方法
static Layout* create() //创建一个Layout对象
virtual void addChild(Node * child) //向其添加一个子节点,一般添加控件Widget的子类
void setBackGroundImage(const std::string& fileName,TextureResType=UI_TEX_TYPE_LOCAL) 设置页面背景图
void setBackGroundColor(const Color3B& color) //设置背景颜色 ※相对的还有get方法
void setBackGroundColor(const Color3B& startColor,const Color3B& endColor) //设置背景颜色,参数一是开始时颜色,参数二是结束时背景颜色 ※相对的还有获取2个状态颜色的get方法
void setBackGroundImageColor(const Color3B& color) //设置背景图像的颜色 ※相对的还有get方法
void removeBackGroundImage() //删除背景图像
const Size& getBackGroundImageTextureSize() //获取背景图像尺寸
除了可以自定义UI控件外,Cocos2dx原本就已经为我们准备了一套简单易懂功能齐全的UI控件。
以下列表只列出常用的方法,更多其他方法可以查询官网API
1、文本标签控件-Text
该控件可以在屏幕上显示指定文本内容,跟LabelTTF很像。
static Text* create //默认创建对象方法
void setText(const std::string& text) //设置此控件显示的文本内容
const std::string&