cocos 3.X 关于代码实现一段动画的播放 20180312 day4

//添加爆炸动画
	auto spboom = Sprite::create();   //先创建一个空的精灵
	spboom->setAnchorPoint(Point::ZERO);  //设置锚点为原点
	spboom->setPosition(160, 150);   //随意设置舞台上的位置
	this->addChild(spboom);   //添加到舞台




	Vector<SpriteFrame *>  allframe;  //用来保存所有的帧


	for (int i = 0; i < 5; i++)
	{
		SpriteFrame* sp = SpriteFrame::create("PFBoom.png", Rect(i*102.4, 0, 102.4, 125));  //Rect中为裁剪的矩形的范围
		/*关于Rect矩形区域的限定很重要,主要观察你这个png图片的大小,以及每一部分的所对应位置*/
		allframe.pushBack(sp);
	}


	Animation * ati = Animation::createWithSpriteFrames(allframe, 0.3);   //代表每0.3播放一遍动画
	spboom->runAction(RepeatForever::create(Animate::create(ati)));  //播放动画

类似于这张图片整体的长宽是512*512像素,我现在只要播放第一行的动画,就是每个都是512/5 * 512/5 像素  

再根据Rect 两点确定一个矩形 即可确定范围


Cocos Creator 3.x 中,实现无敌风滑轮的技能特效,通常涉及到精灵、动画、碰撞检测以及时间管理。下面是一个简单的示例代码,展示了如何创建一个无敌状态的风滑轮动画: ```javascript // 导入所需的库 import { cc } from 'cocos2d'; class UnstoppableWindslider extends cc.Component { onEnable() { // 创建无敌风滑轮精灵 const windslider = this.node.getChildByName('Windslider'); // 设置无敌动画 const无敌动画 = windslider.createAnimation({ name: 'unstoppable_slide', frameNames: ['frame_1', 'frame_2', 'frame_3'], // 假设有三个无敌帧 timePerFrame: 0.5, // 每帧持续时间为0.5秒 repeatForever: true, }); // 当进入无敌状态时播放动画 windslider.runAction(cc.sequence( cc.fadeIn(0.5), // 先淡入显示 cc.playAction(无敌动画, false), // 然后开始无限循环播放无敌动画 cc.delayTime(3), // 可能需要3秒后结束无敌状态 cc.callFuncOnce(() => { windslider.stopAllActions(); // 结束无敌状态时停止动画 windslider.runAction(// 之后恢复正常的滑行动作 cc.sequence( cc.fadeOut(0.5), cc.playAction(someNormalSlideAction, false) ) ); }) )); } } cc.Class.extend(UnstoppableWindslider, cc.Component); ``` 在这个例子中,你需要预先准备好无敌风滑轮的帧图资源,并为它们命名好`frame_1`, `frame_2`, 和 `frame_3`。然后,当角色进入无敌状态时,会播放无敌动画并保持透明度逐渐增强的效果,3秒后停止无敌动画并切换回正常滑行动画
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值