Cocos2d-x   发布时间:2022-05-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了【cocosStudio】查看官方示例--调用cocoStudio控件大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

理解:

  • 将cocostudio的ui控件转换成cocos的GUI控件来操作
  • 通过widgetFromJsonFile()加载根容器Plane控件
  • 通过Helper::seekWidgetByTag()寻找子控件

打开官方示例:

  • 打开CMD
  • CD到D:\cocos2d-x-3.3rc0\tests\cpp-tests\
  • 执行cocos run -p win32命令



将class下所有的文件全部放到Sublime Text 3中:

  • 查找文件CTRL+P:Cocostudio.h
  • 发现底下有个#include "cocostudio/CCSGUIReader.h"
  • 接着查找CCSGUIReader.h



导入头文件调用:(注意命名空间和强制类型转换类型)

  • 将Json文件中的控件,转换成cocos2dx里面的ui控件来操作
  • #include "cocostudio\Cocostudio.h"
  • #include "ui\UIButton.h"
  • using namespace cocostudio;
  • using namespace ui;
注意类型转换的类型必须一一对应,比如TextField就是TextField,不能转换为TextFieldTTF:

  1. #include"HelloWorldScene.h"
  2. /*cocostudio导出的Json文件*/
  3. @H_616_191@ #defineJSON"DemoLogin.json"
  4. #defineBTN_TAG14
  5. @H_616_191@ #defineEDIT_TEXt_name8
  6. @H_616_191@ /*设置命名空间*/
  7. USING_NS_Cc;
  8. @H_616_191@ @H_696_233@using@H_696_233@namespacecocostudio;
  9. @H_696_233@namespaceui;
  10. namespacestd;
  11. Scene*HelloWorld::createScene()
  12. {
  13. @H_616_191@ autoscene=Scene::create();
  14. autolayer=HelloWorld::create();
  15. @H_616_191@ scene->addChild(layer);
  16. returnscene;
  17. @H_616_191@ }
  18. boolHelloWorld::init()
  19. if(!Layer::init())
  20. return@H_696_233@false;
  21. }
  22. /*加载cocostudio界面*/
  23. @H_616_191@ autouiScene=GUIReader::geTinstance()->widgetFromJsonFile(JSON);
  24. addChild(uiScenE);
  25. /*找到cocostudio的控件,装换成coocs的gui控件(Helper须加载CocosGUI.h)*/
  26. /*按钮*/
  27. @H_616_191@ Button*btn=(Button*)(Helper::seekWidgetByTag(uiScene,BTN_TAG));
  28. /*设置按钮点击事件(注意转换类型的对应)*/
  29. @H_616_191@ btn->addTouchEventListener(@H_696_233@this,toucheventSELEctor(HelloWorld::touchEvent));
  30. /*输入框(注意转换类型的对应,不是TextFieldTTF)*/
  31. editText=(TextField*)(Helper::seekWidgetByTag(uiScene,EDIT_TEXt_name));
  32. true;
  33. /*设置按钮点击事件*/
  34. voidHelloWorld::touchEvent(Ref*pSender,TouchEventTypetypE){
  35. switch(typE)
  36. @H_616_191@ {
  37. caseTOUCH_EVENT_BEGAN:
  38. @H_616_191@ CCLOG("Began");
  39. break;
  40. caseTOUCH_EVENT_MOVED:
  41. break;
  42. caseTOUCH_EVENT_ENDED:
  43. /*输出输入框的内容*/
  44. @H_616_191@ CCLOG(editText->getString().c_str());
  45. caseTOUCH_EVENT_CANCELED:
  46. default:
  47. }




FROM:http://blog.csdn.net/ns2250225/article/details/41961219



给cocos中添加响应事件的例子:

#include "ui/CocosGUI.h"

//获取屏幕大小
Size visibleSize = Director::geTinstance()->getVisibleSize();

auto widget = Widget::create();
widget->setContentSize(Size(100,100));
widget->setPosition(Vec2(visibleSize.width/2,visibleSize.height/2));
widget->setTouchEnabled( true );
this ->addChild(widget);
widget->addTouchEventListener([](Ref *pSender,Widget::TouchEventType typE){
switch (typE)
{
case Widget::TouchEventType::BEGAN:
CCLOG( "BEGAN" );
break ;
Widget::TouchEventType::MOVED:
"MOVED" );
;
Widget::TouchEventType::ENDED:
"ENDED" );
;
Widget::TouchEventType::CANCELED:
"CANCELED" );
;
default :
;
}
@H_348_607@});

from:http://www.cocoachina.com/bbs/read.php?tid-289092.html

大佬总结

以上是大佬教程为你收集整理的【cocosStudio】查看官方示例--调用cocoStudio控件全部内容,希望文章能够帮你解决【cocosStudio】查看官方示例--调用cocoStudio控件所遇到的程序开发问题。

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

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。