【Cocos2d-x v3.2+Cocos Studio1.6】实现一个简单的uibutton点击功能

【Cocos2d-x v3.2+Cocos Studio1.6】实现一个简单的uibutton点击功能,第1张

概述使用Cocos Studio能够非常方便地设计游戏的一些界面,并导入到Cocos2d-x中。本文讲解如何基于Cocos Stusio 1.6和Cocos2d-x v3.2来实现一个简单的uibutton点击功能。 首先我们打开Cocos Studio1.6,选择UIEditor,进去后我们发现有很多的示例,选中一个叫demologin的示例: 选择好后我们发现如下图,简单介绍了下功能: 这里我们选 使用Cocos Studio能够非常方便地设计游戏的一些界面,并导入到Cocos2d-x中。本文讲解如何基于Cocos Stusio 1.6和Cocos2d-x v3.2来实现一个简单的uibutton点击功能。


首先我们打开Cocos Studio1.6,选择UIEditor,进去后我们发现有很多的示例,选中一个叫demologin的示例:

选择好后我们发现如下图,简单介绍了下功能:

这里我们选中那个login按钮,发现这个按钮的实例名叫login_button,这个名字我们等会代码里要用,然后我们保存一下。

在保存路径下找到这个工程文件夹,打开

有这些文件,我们把Json和Resources文件夹下的资源复制到Cocos2d-x中的资源文件夹中。

这个Json文件就是记录了这个Widget的各种数据,Cocos2d-x会解析这些数据然后还原这个界面,感兴趣的可以打开研究下。

好了到了代码阶段,我就简单的创建了个helloworld,但是我们要把三个外部的工程库导入这个解决方案并引用并在头文件中包含。

好了,下面就是代码了

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 //HelloWorldScene.h #ifndef__HELLOWORLD_SCENE_H__ #define__HELLOWORLD_SCENE_H__ #include"cocos2d.h" //导入这三个头文件 //注意在这个工程的属性->C\C++->常规->附加包含目录中添加这三个文件的路径 #include"cocostudio/CocoStudio.h" #include"extensions/cocos-ext.h" #include"ui/CocosGUI.h" class HelloWorld: public cocos2d::Layer { : //there'sno'ID'incpp,sowerecommendreturningtheclassinstancepointer static cocos2d::Scene*createScene(); //Here'sadifference.Method'init'incocos2d-xreturnsbool,insteadofreturning'ID'incocos2d-iphone virtual bool init(); //aselectorcallback voID menuCloseCallback(cocos2d::Ref*pSender,cocos2d::ui::touchEventTypetype); //implementthe"staticcreate()"methodmanually CREATE_FUNC(HelloWorld); }; #endif//__HELLOWORLD_SCENE_H__
28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83
//HelloWorldScene.cpp #include"HelloWorldScene.h" USING_NS_CC; //这个是命名空间 using namespace cocostudio; ui; Scene*HelloWorld::createScene() { //'scene'isanautoreleaSEObject autoscene=Scene::create(); //'layer'isanautoreleaSEObject autolayer=HelloWorld::create(); //addlayerasachildtoscene scene->addChild(layer); //returnthescene return scene; } //on"init"youneedtoinitializeyourinstance HelloWorld::init() { ////////////////////////////// //1.superinitfirst if (!Layer::init()) { return false ; } SizevisibleSize=Director::getInstance()->getVisibleSize(); Vec2origin=Director::getInstance()->getVisibleOrigin(); //获取我们的CocosstudioUIDemo //这里我们创建了一个Widget,这里说明下貌似cocostudio有自己的一套代码风格和API //有些功能能和cocos2dx混合着用 @H_702_502@ //这里的Widget有点类似一个layer,反正我是这样理解的 ui::Widget*pNode=cocostudio::GUIReader::getInstance()->WidgetFromJsonfile( "Demologin.Json" ); this ->addChild(pNode); //我们从Widget中找到那个button的名字然后实例出来(跟androID有点像) ui::button*button=(ui::button*)ui::Helper::seekWidgetByname(pNode, "login_button" ); //给这个按钮增加一个touch的侦听(这边就和cocos2dx有不同了) button->addtouchEventListener( ,toucheventselector(HelloWorld::menuCloseCallback)); true ; } //这里是侦听回调函数 HelloWorld::menuCloseCallback(cocos2d::Ref*pSender,ui::touchEventTypetype) { //cocostudio的侦听,你可以根据type的类型来执行相应的代码 //这里用switch来判断,非常的简洁明了 switch (type) { case ui::touchEventType::touch_EVENT_BEGAN: { log ( "touchbegan" ); break ; } ui::touchEventType::touch_EVENT_MOVED: { "touchmoved" ); ; } ui::touchEventType::touch_EVENT_ENDED: { "touchended" ); ; } ui::touchEventType::touch_EVENT_CANCELED: { "touchcanceled" ); ; } default : ; } }

运行

点击按钮测试下

好的,完成。


来源网址:http://www.jb51.cc/article/p-tvjfnwwd-bbe.html

总结

以上是内存溢出为你收集整理的【Cocos2d-x v3.2+Cocos Studio1.6】实现一个简单的uibutton点击功能全部内容,希望文章能够帮你解决【Cocos2d-x v3.2+Cocos Studio1.6】实现一个简单的uibutton点击功能所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1003948.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存