用Cocos Studio 2.3.2制作UI界面中控件不再支持运行3d动作特效

简介:

Cocos Studio 2.3.2制作UI界面中控件不再支持运行3d动作特效

 

   cocos2d-x + cocos studio无疑是当下二维手游开发的利器,但是在从旧版本向新版本的升级过程中,坑坑也的确不少。看到网络上这方面的记录多如牛毛,但又大多是只言片语,甚至于最可靠的官方网站上许多文档也都十分过时。因此,深深觉得,要做成功一项开源项目的确很难,而这部分文档教程又恐怕无非一个两个员工所能为。感于此,继续记录下我这边的踏坑中的只言片论,供参考。

 

1.以前试验环境

 

 

  • cocos2d-x 2.2.3

  • CocoStudio 1.4.0.1

    以前运行如下代码OK

1
2
3
          UIButton* Button_Start =  static_cast <UIButton*>(widget->getChildByName( "Button_Start" ));
          CCActionInterval* waves1 = CCWaves3D::create(10, CCSizeMake(15,10), 18, 5);
          Button_Start->runAction(CCRepeatForever::create(waves1));

    恕不再奉上运行时截图。

 

2.当前试验环境

 

 

  • Cocos2d-x 3.8.1

  • Cocos Studio 2.3.2

     当前运行如下代码FAILED

1
2
3
          Button* Button_Start =  static_cast <Button*>(Helper::seekWidgetByName(Panel_Back,  "Button_Start" ));
          auto   waves1 = Waves3D::create(10, CCSizeMake(15,10), 18, 5);
          Button_Start->runAction(CCRepeatForever::create(waves1));

 

    运行时错误截图:

wKioL1ZNRNPTSeNgAAF24ldofSo845.jpg

    跟踪源码大致分析得知:运行上述Action的主体必须是GridNode类型。其实,上面图中的_gridNodeTarget正是GridNode类型的指针。

 

3.cpp-tests中实例证明

 

  参考源码文件见EffectsAdvancedTest.cpp,相关代码如下:

 

1
2
3
4
5
     auto  waves = Waves::create(5, Size(15,10), 5, 20,  true false );
     auto  shaky = Shaky3D::create(5, Size(15,10), 4,  false );
     
     _target1->runAction( RepeatForever::create( waves ) );
     _target2->runAction( RepeatForever::create( shaky ) );

 

   其中,_ target1_target2都是NodeGrid指针类型。另外上面Waves替换成Waves3D也一样,因为二者都继承自Grid3DAction(参考下图)

注意上述文件中有关类似的代码很多很多。

wKiom1ZNRyfQtP-YAAFi9hjjP0I168.jpg

 

4.补充

 

    第一,早期的上述3D动作特效只要求其运行实体对象为Node,当前版本的则要求其运行实体对象为NodeGrid,这正是上述运行时错误产生的根源。至于如何官方设计如此转换,暂不得而知。不过我还是坚信官方技术一定会朝着越来越科学高效的目标发展,尽管其过程中存在多种问题。

    第二,能否通过变通方式实现UI界面中的控件运行上述3DAction呢?经过简单分析,感觉很难,即使使用官方网站提到的自定制组件技术。记得早期版本开发过程中,就发现过不少的Studio中的控件技巧与直接在界面中添加的Node及其子类存在许多不致的方面,现在仍然如此!当然,想彻底弄清楚内在规律肯定需要花费不少时间。

5.Refs

(1)http://www.cocos.com/doc/article/index?type=cocostudio&url=/doc/cocos-docs-master//manual/studio/v4/chapter3/Extend/Directory/../WidgetExtend/zh.md

(2)http://www.cocoachina.com/bbs/read.php?tid=225481

(3)http://guandongsheng.iteye.com/blog/2091679

(4)http://my.oschina.net/Jacedy/blog/301575
















本文转自朱先忠老师51CTO博客,原文链接: http://blog.51cto.com/zhuxianzhong/1714617,如需转载请自行联系原作者




相关文章
|
3月前
|
计算机视觉 Python
基于Dlib的人脸识别客户端(UI界面)
基于Dlib的人脸识别客户端(UI界面)
99 2
|
10天前
|
人工智能 编解码 自然语言处理
Aria-UI:港大联合 Rhymes AI 开源面向 GUI 智能交互的多模态模型,整合动作历史信息实现更加准确的定位
Aria-UI 是香港大学与 Rhymes AI 联合开发的多模态模型,专为 GUI 智能交互设计,支持高分辨率图像处理,适用于自动化测试、用户交互辅助等场景。
67 11
Aria-UI:港大联合 Rhymes AI 开源面向 GUI 智能交互的多模态模型,整合动作历史信息实现更加准确的定位
|
27天前
|
移动开发 前端开发 Java
Java最新图形化界面开发技术——JavaFx教程(含UI控件用法介绍、属性绑定、事件监听、FXML)
JavaFX是Java的下一代图形用户界面工具包。JavaFX是一组图形和媒体API,我们可以用它们来创建和部署富客户端应用程序。 JavaFX允许开发人员快速构建丰富的跨平台应用程序,允许开发人员在单个编程接口中组合图形,动画和UI控件。本文详细介绍了JavaFx的常见用法,相信读完本教程你一定有所收获!
Java最新图形化界面开发技术——JavaFx教程(含UI控件用法介绍、属性绑定、事件监听、FXML)
|
22天前
|
前端开发 Linux C#
一款开源、免费、美观的 Avalonia UI 原生控件库 - Semi Avalonia
一款开源、免费、美观的 Avalonia UI 原生控件库 - Semi Avalonia
58 10
|
2月前
|
人工智能 API Apache
推荐3款开源、美观且免费的WinForm UI控件库
推荐3款开源、美观且免费的WinForm UI控件库
504 6
|
2月前
|
开发框架 JavaScript 前端开发
HarmonyOS UI开发:掌握ArkUI(包括Java UI和JS UI)进行界面开发
【10月更文挑战第22天】随着科技发展,操作系统呈现多元化趋势。华为推出的HarmonyOS以其全场景、多设备特性备受关注。本文介绍HarmonyOS的UI开发框架ArkUI,探讨Java UI和JS UI两种开发方式。Java UI适合复杂界面开发,性能较高;JS UI适合快速开发简单界面,跨平台性好。掌握ArkUI可高效打造符合用户需求的界面。
164 8
|
2月前
|
API C# 开发者
基于Material Design风格开源、免费的WinForms UI控件库
基于Material Design风格开源、免费的WinForms UI控件库!
|
5月前
|
编解码 前端开发 vr&ar
从零开始的PICO教程(4)--- UI界面绘制与响应事件
这篇文章是PICO开发系列教程的第四部分,主要介绍了如何在PICO 4 VR环境中创建UI界面,包括Canvas和Panel的配置、UI元素的绘制、以及Button和Slider的事件响应绑定,并通过示例展示了数字增减和滑块功能的具体实现。
从零开始的PICO教程(4)--- UI界面绘制与响应事件
|
3月前
|
机器学习/深度学习 数据可视化 计算机视觉
基于opencv的车牌识别系统(UI界面采用tkinter设计)
基于opencv的车牌识别系统(UI界面采用tkinter设计)
79 0
|
3月前
|
Linux C# Android开发
分享3款开源、免费的Avalonia UI控件库
分享3款开源、免费的Avalonia UI控件库
366 0

热门文章

最新文章