加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-14 16:44:40 所属栏目:百科 来源:网络整理
导读:用 Cocos Studio 2.3.2 制作 UI 界面中控件不再支持运行 3d 动作特效 cocos2d-x + cocos studio无疑是当下二维手游开发的利器,但是在从旧版本向新版本的升级过程中,坑坑也的确不少。看到网络上这方面的记录多如牛毛,但又大多是只言片语,甚至于最可靠的官

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

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

1.以前试验环境

  • cocos2d-x 2.2.3

  • CocoStudio 1.4.0.1

以前运行如下代码OK

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

Button*Button_Start=static_cast<Button*>(Helper::seekWidgetByName(Panel_Back,"Button_Start"));
autowaves1=Waves3D::create(10,5);
Button_Start->runAction(CCRepeatForever::create(waves1));

运行时错误截图:

wKioL1ZNRNPTSeNgAAF24ldofSo845.jpg

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

3.cpp-tests中实例证明

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

autowaves=Waves::create(5,Size(15,5,20,true,false);
autoshaky=Shaky3D::create(5,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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读