CocoStudio 简单使用动画

版本:

cocos2dx 3.9

cocostudio 3.9

首先抱怨一下cocos2dx官方对cocostudio的不更新,不过现在cocostudio也够用了,不过还是要腹黑一下。。。。

今天接触到了cocostudio的动画部分,所以就做个简单的总结

载进行动画编辑时,很多都用到了 “开始记录动画”这个勾选选项


这个选项是很重要的,不开启的话比如 帧事件,不透明度都是没法使用的,这个坑我真的认了!!!

动画还是和以前的一样。没差

然后就是cpp的编写了

bool SplashScene::init()
{
	//导入场景文件
	Node*csb = CSLoader::createNode("SplashScene.csb");
	this->addChild(csb);
	//这个类是Action动作类的子类
	timeline::ActionTimeline*action = CSLoader::createTimeline("SplashScene.csb");
	csb->runAction(action);
	//从第0帧开始,并且只播放一次
	action->gotoFrameAndPlay(0,false);
	//获取动画持续时间
	float duration = action->getDuration();
	//获取结束帧,经测试是你动画添加帧的最后位置
	float lastFrame = action->getEndFrame();
	//捕获事件帧
	action->setFrameEventCallFunc(CC_CALLBACK_1(SplashScene::onFrameEvent,this));
	//捕获到最后一帧的回调事件,比如你总共是60帧的动画,那么60就是最后帧,每次循环到60都会触发一次
	action->setLastFrameCallFunc(CC_CALLBACK_0(SplashScene::gameStart,this));
	return true;
}
void SplashScene::onFrameEvent(cocostudio::timeline::Frame* frame)
{
	timeline::EventFrame*env = dynamic_cast<timeline::EventFrame*>(frame);
	if(!env)
		return ;
	auto str = env->getEvent();
	//这个是你在cocostudio里帧事件的名称
	if(str == "game_start")
		log("game_start");
}
void SplashScene::gameStart()
{
	log("game start");
}


在我调试的时候出现了一个错误,就是在csb文件改变下,而源程序没有重新编译,程序能正常运行,但调用显示不正确(vs2012),不知道这什么情况

发一张我最终的效果图吧


  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值