cocos2d-x 基本样条动作

游戏中有事会希望精灵按着一些常规的轨迹进行运动,cocos2d-x中的CCCardinalSplineTo和其他子类有实现这样的功能,只需提供几个离散的点,游戏对象就可以根据这些离散开来的点模拟出相应的路径,这些路径就是相应的公式模拟出来的曲线,那就是基本样条。

这里CCCardinalSplineTo和CCCardinalSplineBy的关系与之前以“To”和"By"结尾的类类似,CCCatmullRomTo和CCCatmullRomBy也是这样的。他们都是采用基本样条的公式;不同的是,CCCatmullRomTo和CCCatmullRomBy的拉力系数是0.5,而之前的CCCardinalSplineTo和CCCardinalSplineBy的拉力系数是可以自定义的。

基本样条动作,首先定义一个点数组,把路径的点放入点数组中。创建基本样条动作时,3个参数分别是动作时间、点数组、拉力系数。

和之前一样还是所谓的“To”和“By”的区别,第一个是绝对的,第二个是相对的,第二个定义点数组的时候,第一个点最好设置为(0,0),否则会被忽略掉,可以重写draw函数把路径画出来的。

		CCSprite *sprite=CCSprite::create("CloseNormal.png");
		sprite->setPosition(CCPointZero);
		this->addChild(sprite);
		CCPointArray *trackI=CCPointArray::create(10);//定义数组
		trackI->addControlPoint(CCPointZero);
		trackI->addControlPoint(ccp(400,20));
		trackI->addControlPoint(ccp(400,300));
		trackI->addControlPoint(ccp(30,300));
		trackI->addControlPoint(ccp(200,150));
		CCCatmullRomTo *action=CCCatmullRomTo::create(5,trackI);
		sprite->runAction(action);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值