落叶的动作合成 (下落+摆动+三维旋转)

本文介绍了一个使用Cocos2d-x实现树叶动画的例子,包括树叶的三维翻转和摆动效果。通过设置树叶的移动路径和旋转角度,实现了树叶从上至下摆动飘落的效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这是三个动作的分解 :运行一个spawn 就可以合成 完整的动画

float fromtime, roTime;
	float fAngle1, fAngle2;
	
	fromtime= 10;//叶子下落的时间
	roTime = 2.5;//叶子单向摆动一次时间
	fAngle1 = -80;//叶子逆时针摆动角度
	fAngle2 = 80;//顺时针摆动角度
	
	int iRandPos = rand() % 250;
	CCLog("Pianyi%d", iRandPos);
	//叶子所运动到的位置
	CCMoveTo *moveTo = CCMoveTo::create(10,ccp(CCDirector::sharedDirector()->getWinSize().width - iRandPos, 30));
	
	CCRotateBy *rotaBy1 = CCRotateBy::create(roTime, fAngle1);
	CCRotateBy *rotaBy2 = CCRotateBy::create(roTime, fAngle2);

	CCEaseInOut *ease1 = CCEaseInOut::create(rotaBy1, 3);
	CCEaseInOut *ease2 = CCEaseInOut::create(rotaBy2, 3);
	//摆动动作合成
	CCFiniteTimeAction *seq2 = CCSequence::create(ease1, ease2, NULL);//依次执行顺时针、逆时针摆动
	CCRepeat *baidong = CCRepeat::create(seq2, -1);//摆动合成

	CCOrbitCamera * orbit = CCOrbitCamera::create(8, 1, 0, 0, 360, 45, 0);
	//让树叶精灵始终执行三维翻转的动作
	CCRepeat *fz3d = CCRepeat::create(orbit, -1);//无限循环执行叶片翻转的动作

	CCSprite *star =CCSprite::create("star.png");
	star->setPosition(ccp(200, 200));
	star->runAction(fz3d);
	addChild(star);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值