Press "Enter" to skip to content

Cocos stdio3.10使用方法–code

大虾 0
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/pyf_914406232/article/details/59058438

     之前一直使用的是cocos stdio1.6版本,生成json文件,使用UI widget的布局方式,自从推出3.10版本之后cocos2d-x就使用csb格式了,占用内存小、读取速度更快等优点,虽然官网也有使用说明,但是我看了半天感觉不够清晰,心里不爽,故自己写一个学习心得留给后人,原创非转载,不喜勿喷。

 

1.编辑器中的常规控件的使用方法。

        在3.10中直接创建一个新的工程,里面会有一个mainscene的例子,例子在编辑器中同样有一个MainMcene.csb的文件,他是通过 :

auto rootNode = CSLoader::createNode(“MainScene.csb”);

addChild(rootNode);

例子中就只有这么多,如果我们创建了一个普通容器的话怎么办?加上去之后通过以上步骤就可以看见,可是该如何找出来?

auto view = dynamic_cast(rootNode->getChildByTag(3));

//view->setVisible(true);

//这里3是创建的容器的逻辑标签,也就是Tag的值

通过这个道理,我们很容易就可以得到其他类型的任何空间,精灵、图片、按钮、标签等,可是如果我在容器view中创建了一个子节点按钮but怎么找?先把父节点找出来才能找到子节点,先把父节点view找出来再找子节点按钮but:

Auto but = static_cast

//But->setVisible(false);

注意:为什么上面用的是dynamic_cast而下面用的是static_cast,其实这二种方法都可以,只不过一个大神告诉我,如果是容器的话最好用dynamic_cast。

 

2.帧动画的使用方法。

      帧动画(sprite)和普通控件也是差不多,但是可以把多张图片拖进去变成帧动画,首先创建一个节点,然后在节点中添加sprite,再选择多张图片图片拖进sprite中,没错就按照你想的那样做,编辑完了之后,把这个Node.csb文件添加进场景中,最后导出资源,点击发布。

1.  //加载Cocos Studio编辑好的资源  

2.     auto rootNode = CSLoader::createNode(“MainScene.csb”);  

3.     addChild(rootNode);  

4.  //加载动画:   

5.  ActionTimeline *ani = CSLoader::createTimeline(“Node.csb”);   

6.  rootNode->runAction(ani);   

7.     

8.  //播放动画  

9.//从第0帧到15帧循环播放  

10.action->gotoFrameAndPlay(0, 15, true);  

这样就完成了帧动画的加载,可是我一想,既然这个动作如果不执行动作的话也可以显示在做面上,因为本身就是一个精灵,那么可不可以直接让它本身执行runAction();,经过证实,可以这样 使用:

runAction(ani)     ;

说明:只要把Node节点放进场景中,任何位置都可以找到,也是很神奇。

3.骨骼动画

      骨骼动画的编辑在这里就不说了,通过建立绑定和骨骼把一整套资源合成一个精灵或者英雄,通过一个父类把一系列的骨骼绑在一起,实现动作的同步。

      首先创建一个骨骼动画SkeleTon.csb文件,然后添加进场景中。

Auto ske = CSLoader::createTimeline(“Skeleton.csb”);

runAction(ske);

ske->gotoFrmaeAndPlay(0,25,true);

方法和帧动画基本上是一样的,只是在创建骨骼动画的时候可能会麻烦一点。

Cocos stdio3.10使用方法

                                                   自行车轮子

————————————————————————————————————–
文章来源:https://blog.csdn.net/nav/lang
Article from the network, copyright is owned by the original author, if there is infringement, please contact delete.
文章来源于网络,版权属原作者所有,如有侵权请联系删除

发表评论

电子邮件地址不会被公开。 必填项已用*标注