上一篇博客里面讲过menu,在跟玩家交互的过程中,我们有些时候也需要使用到一些独立的button,cocos2dx中也有相应的button的控件可以使用,下面我们来看看如何进行使用。
首选需要包含所需要的头文件:
#include "ui/CocosGUI.h"
然后为了使用方便,我们设置一下命名空间:
using namespace ui;接下来我们来创建一个简单的button:
首先我们看官方文档:
http://cn.cocos2d-x.org/doc/cocos2d-x-3.0/d2/db1/classcocos2d_1_1ui_1_1_button.html#adf271b1be4c753b7f9ddf23e8f67c530
static Button* create ( const std::string & normalImage,const std::string & selectedImage = "",const std::string & disableImage = "",TextureResType texType = TextureResType::LOCAL )
这是button的create函数,我们可以看到,第一个参数是未被选中时的纹理,第二个是被选中时的纹理,第三个是不可备选的纹理。这里只有第一个参数是必须的,后面的都有默认值,那么我们创建一个简单的:
auto btn0 = Button::create("test.png");
因为button是继承与node,所以一些set***的函数都可以使用,日入setScale,setPosition等等。此外还可以给button绑定事件监听函数,这些内容大家随便百度一下就能找到,这里要着重说明的一个问题是在使用button的时候很多人都遇到一个问题:
就是在编译链接的时候cocostudio/ObjectFactory.h: No such file or directory出现这个错误,这个错误的原因其实是因为在项目自动生成的时候,不会去链入ui相关的lib,所以需要手动添加,很简单,将Android.mk中的:
LOCAL_WHOLE_STATIC_LIBRARIES += cocostudio_static $(call import-module,editor-support/cocostudio)这两行的注释去掉即可。这个错误也是困扰我近一个晚上的错误,win平台下可以通过导入项目lib来fix。