cocos2d-x多种动作组合,以及将CallFunc创建的对象添加进动画组合

本文介绍了如何在cocos2d-x游戏引擎中,通过组合不同的动作来创建复杂的动画效果,并详细讲解了如何利用CallFunc创建的对象加入到动画序列中,以实现更丰富的交互和控制。
摘要由CSDN通过智能技术生成
  MoveBy* moveBy = MoveBy::create(0.5f, Vec2::UNIT_X * 80);

	CallFunc* walkCallFunc = CallFunc::create(CC_CALLBACK_0(FightController::showWalkAnimation, this)); //回调动作 显示行走动画
	CallFunc* attackCallFunc = CallFunc::create(CC_CALLBACK_0(FightController::showAttckAnimation, this));//回调动作 显示攻击动画

	Spawn* spawn = Spawn::create(walkCallFunc,moveBy,nullptr);//同时播放 行走和移动

	CallFunc* attackFinish = CallFunc::create(CC_CALLBACK_0(FightController::finishAttackAnimation, this));// 攻击结束

	CallFunc* walkFinish = CallFunc::create(CC_CALLBACK_0(FightController::finishWalkAnimation, this));//移动结束

	Sequence* sequence = Sequence::create(
		spawn, // 行走动画和移动
		attackCallFunc, // 显示攻击动画
		DelayTime::create(2), // 延迟2秒
		attackFinish, // 结束攻击
		moveBy->reverse(),// 反向移动
		walkFinish,//结束行走动画
		nullptr);
    //Node *HeroQueue 在头文件声明了
	heroQueue->runAction(sequence);
void FightController::showWalkAnimation()
{
	for (Node* node : heroQueue->getChildren())
	{
		cocostudio::Armature* armature = dynamic_cast<cocostudio::Armature*>(node);

		if (armature != nullptr)
		{
			armature->getAnimation()->play("walk");
		}
	}
}   //四个回调函数差不多,就不写了

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值