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

Cocos2d-X 学习笔记 13 cocos2dx骨骼动画

发布时间:2020-12-14 19:08:51 所属栏目:百科 来源:网络整理
导读:不全是和原版一样,我做了一定的修改来更方便的生成数据。 地址: https://github.com/jyinkailej/Flash2Cocos2d-x blog: rainynote.com 使用说明:1.安装 SkeletonSWFPanel.zxp 2.如果安装不成功,可以手动拷贝文件 1.3SkeletonSWFPanelSkeletonSWFPanel


不全是和原版一样,我做了一定的修改来更方便的生成数据。
地址: https://github.com/jyinkailej/Flash2Cocos2d-x
blog: rainynote.com
使用说明:1.安装 SkeletonSWFPanel.zxp





2.如果安装不成功,可以手动拷贝文件 1.3SkeletonSWFPanelSkeletonSWFPanelbin-debug 里的 SkeletonSWFPanel.swf和

SkeletonSWFPanel 文件夹到

C:UsersyouyouAppDataLocalAdobeFlash CS6zh_CNConfigurationWindowSWFSkeletonSWFPanel这是WIN7下的做法,其他系统不大清楚。



3.打开Flash cs6 -> 窗口 ->其他面板 -> SkeletonSWFPanel



4. import-> 选择一个 你想要的 导入方式导入 动画.






tween time : 两个动作切换 需要花的时间,比如 由 stand 切换到 run中间的 tween 时间

animation time :这个动作持续的时间

stage frameRate : 指的是 游戏 的帧率,因为可能不同的朋友 需要不同帧率的游戏,在这里设定了帧率再去调animation time后,你在游戏中 以同样的帧率来运行游戏,就能看到和在工具上显示的 动画效果 是一样的。(这个设定 是为了方便你调射动画速度,因为 Flash中默认是 24 帧 )

bone animation delay : 这是一个很有用的设定,操作时 选中
中的一个元素后 再调这个值,效果,举例说 如果只有 做了两帧动画,如果只播放这两帧动画,则会出现 所有 的 bone 的 动作的速率是一样的 ,

图中所示上面的马 的腿 的动作 是一样的,下面的马腿 设定了 延时 动作,这样出现一前一后跑动的效果,比较真实,不会死板。



5. 1.0的 骨骼从属需要手动 设置 很是繁琐,现在只要 在 bone框内就可以拖动从属关系。


6.export :这里提供了三种 保存方式, pngswf 单个文件 ,单个文件主要是方便我们自己可以选择打包方式,png 方式 会把xml信息也压缩进 png里。


程序里面需要做的就是:
// step 1: add your skeleton xml file
//CCConnectionData::sharedConnectionData()->addData("knight.xml");
CCConnectionData::sharedConnectionData()->addData("zombie.xml");

// step2: add plist and png to cache
CCSpriteFrameCache::sharedSpriteFrameCache()->addSpriteFramesWithFile("zombie.plist","zombie.png");

// step 3: create a CCSpriteBatchNode
//CCSpriteBatchNode *batchNode = CCSpriteBatchNode::create("knight.png");
CCSpriteBatchNode *batchNode = CCSpriteBatchNode::create( "zombie.png" );

// step 4: create a armature just need armature name,plist,picture,and a CCSpriteBatchNode
// armature = CCArmature::cr eate("Knight_f/Knight","Knight_f/Knight","knight.plist","knight.png",batchNode);
armature = CCArmature::create("Zombie_f/Zombie","Zombie_f/Zombie",batchNode);

armature->getDisplay()->setPosition(ccp(size.width/2,size.height/2));
armature->getDisplay()->setScale( 1 );

// step 5: play the animation
armature->getAnimation()->playTo("stand");

(编辑:李大同)

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

    推荐文章
      热点阅读