在没有Cocos Studio的时候通常使用菜单作为按钮,在Cocos Studio中不用这么麻烦了,Cocos Studio中自带了一个按钮控件,使用Cocos Studio自带的按钮控件可以直接在界面上添加按钮
向Cocos Studio中添加一张图片用作窗口的背景图片,并且按照下面的方法将图片添加到MainScene场景中
按照面展示的操作方式删掉按钮上的文字
设置按钮正常状态时的图片
选中按钮->单击鼠标右键->设置按钮样式->正常状态
设置按钮按下状态时的图片
选中按钮->单击鼠标右键->设置按钮样式->按下状态
展示效果
发布项目,将项目发布到Visual Studio,并且将HelloWorldScene.h中的代码改成下面的代码
#ifndef __HELLOWORLD_SCENE_H__ #define __HELLOWORLD_SCENE_H__ #include "cocos2d.h" #include "cocostudio/CocoStudio.h" #include "ui/CocosGUI.h" USING_NS_CC; //使用动画相关的类引用的命名空间 using namespace cocostudio::timeline; //使用UI引用的命名空间 using namespace cocos2d::ui; class HelloWorld : public Layer { public: CREATE_FUNC(HelloWorld); static Scene* createScene(); bool init(); //按钮响应函数 void Option(Ref* pSender,Widget::TouchEventType type); }; #endif // __HELLOWORLD_SCENE_H__
将HelloWorldScene.cpp中的代码改成下面的代码
#include "HelloWorldScene.h" Scene* HelloWorld::createScene() { auto scene = Scene::create(); auto layer = HelloWorld::create(); scene->addChild(layer); return scene; } bool HelloWorld::init() { if(!Layer::init()) { return false; } //加载Cocos Studio编辑好的资源 auto rootNode = csloader::createNode("MainScene.csb"); addChild(rootNode); //通过按钮的名字获得按钮 Button* button = dynamic_cast<Button*>(rootNode->getChildByName("Button")); //添加监听 button->addTouchEventListener(CC_CALLBACK_2(HelloWorld::Option,this)); return true; } //按钮响应函数 void HelloWorld::Option(Ref* pSender,Widget::TouchEventType type) { switch(type) { //按下按钮 case Widget::TouchEventType::BEGAN: { log("Down !"); } break; //松开按钮 case Widget::TouchEventType::ENDED: { log("Up !"); } break; //在按钮上移动 case Widget::TouchEventType::MOVED: { log("Move !"); } break; //取消按钮 case Widget::TouchEventType::CANCELED: { log("Cancel !"); } break; default: break; } }
执行结果:
当按下按钮时会打印Down !
当松开按钮时会打印Up !
当按下按钮并且在按钮上滑动时会打印 Move !
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。