最近学cocostudio做动画很蛋疼,sprite和runaction都没有,做毛啊?
虽然经过千辛万苦,研究出了一点门道,可以勉强做出来,但是真心没有研究透。
最大的问题是:为何它和cocos2dx的那套动画机制完全不同?而且不用runaction?是因为cocos2dx的那套搞得不行?
cocostudio的动画使用的是armature系统,这套系统比cocos2d-x的动画强大很多。
不过你说的runaction应该叫做的动作,比如移动、旋转灯··这样的动画在UI编辑器里就做了。
如果做复杂的动画的话你还用runaction将会非常的复杂~~动作编辑器做的就是将这部分复杂的计算转成直观的界面编辑器操作
参考下动作编辑器的播放代码:
//从导出文件异步加载动画
CCArmatureDataManager::sharedArmatureDataManager()->addArmatureFileInfo(“Cowboy0.png”,“Cowboy0.plist”,“Cowboy.ExportJson”);
//根据动画名称创建动画精灵
CCArmature *armature = CCArmature::create(“Cowboy”);
//播放指定动作
armature->getAnimation()->playByIndex(0);
//修改属性
armature->setScale(0.5f);
//设置动画精灵位置
armature->setPosition(200,300);
//添加到当前页面
this->addChild(armature,2);
确实runaction是动作,但是cocos2dx的动画也是要runaction来播放的。个人觉得其提供的动作组合功能还是不错啊?
然后还有如下问题:
cocos2dx好像是没有支持骨骼动画吧?
armature的强大之处在于?
armature指的就是骨骼动画吗?
armature动画是cocostudio自有的动画系统,不过cocos2d-x的包里已经直接包含了cocostudio的解析包的,所以对armature是支持的。
想了解强大性的你就做分别用代码和编辑器一个人物走动的动画(不是序列帧动画哦),然后你就了解了。
当然骨骼动画需要专业的动画师制作,但是能够大大节约资源体积。
谢谢回答!
谢谢 楼主 很有帮助
斑斑 我想在一个序列帧中从某一帧开始播放 为什么用gotoandPlay()没有任何反应啊
谢谢 楼主分享 很有帮助
1024 1024
先play 然后再goto
大神,问个问题 //从导出文件异步加载动画
CCArmatureDataManager::sharedArmatureDataManager()->addArmatureFileInfo(“Cowboy0.png”,“Cowboy0.plist”,“Cowboy.ExportJson”);
//根据动画名称创建动画精灵
CCArmature *armature = CCArmature::create(“Cowboy”);
//播放指定动作
armature->getAnimation()->playByIndex(0);
//修改属性
armature->setScale(0.5f);
//设置动画精灵位置
armature->setPosition(200,300);
//添加到当前页面
this->addChild(armature,2); 如果我这样一次性加载多个的时候 游戏的时候帧数就会被影响 运行的时候感觉很卡的样子 有那种加载多个sprite的时候 用SpriteBatchNode一样 只渲染一次的方法吗? 请教大神