博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
用Cocos Studio 2.3.2制作UI界面中控件不再支持运行3d动作特效
阅读量:5795 次
发布时间:2019-06-18

本文共 1680 字,大约阅读时间需要 5 分钟。

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
(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
(Helper::seekWidgetByName(Panel_Back, "Button_Start"));         auto  waves1 = Waves3D::create(10, CCSizeMake(15,10), 18, 5);         Button_Start->runAction(CCRepeatForever::create(waves1));

 

    运行时错误截图:

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

 

3.cpp-tests中实例证明

 

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

 

    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(参考下图)

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

 

4.补充

 

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

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

5.Refs

(1)

(2)

(3)

(4)

 

 

转载地址:http://xcffx.baihongyu.com/

你可能感兴趣的文章
CentOS分区cfdisk
查看>>
Hive安装配置
查看>>
SEO组月测试-SEO基础问题,不看答案你能答多少
查看>>
我的友情链接
查看>>
nginx修改upstream不重启的方法(ngx_http_dyups_module模块)
查看>>
/etc/inittab文件详解
查看>>
在BAE 上用tornado 做了一个Octopress 主题的博客
查看>>
乌班图系统mysql主从备份
查看>>
一个不错的命令行参数解析类
查看>>
Go 条件编译
查看>>
springmvc传递参数
查看>>
Azure 中国篇之网络服务—(2)Azure虚拟机使用公网ip(PIP)
查看>>
iphone推送java代码实现
查看>>
Azure服务将开始使用WoSign作为HTTPS(超文本传输安全协议)端根证书
查看>>
我的友情链接
查看>>
英国国家医保系统用NoSQL替代甲骨文
查看>>
我的友情链接
查看>>
PHP高性能编程-提高PHP速度-加速PHP执行-PHP性能优化实践
查看>>
通过distcp进行并行复制
查看>>
走向.NET架构设计—第四章—业务层分层架构(后篇)
查看>>