- MoveTo,MoveBy,ScaleTo,ScaleBy,Blink
MoveTo ##
MoveTo动作,就是将精灵(或其他元素)移动到指定位置,与精灵本身的位置无关。
//获取屏幕资源
Size visiableSize = Director::getInstance()->getVisibleSize();
//----------------------- move to 精灵移动到,指定的位置-----------------------------
//新建熊猫sprite
Sprite* panda_spr1 = Sprite::create("panda2.png");
panda_spr1->setPosition(ccp(visiableSize.width / 2 - 200, visiableSize.height / 2));
this->addChild(panda_spr1);
//创建 moveAction 动作,第一个参数是动作时间3秒,第二个参数为指定位置参数,移动到1/3,1/3的位置
MoveTo* movetoAct = MoveTo::create(3.0f, (ccp(visiableSize.width / 3, visiableSize.height / 3)));
//给精灵设置动作runAction
panda_spr1->runAction(movetoAct);
MoveBy
MoveBy动作,就是将精灵(或其他元素)在自己本身位置的基础上向指定方向移动指定距离。
//获取屏幕资源
Size visiableSize = Director::getInstance()->getVisibleSize();
//----------------------- move by 精灵 向指定的方向移动相应的值,正正为右上,负负为左下-----------------------------
//新建熊猫sprite
Sprite* panda_spr2 = Sprite::create("panda2.png");
panda_spr2->setPosition(ccp(visiableSize.width / 2 - 400, visiableSize.height / 2));
this->addChild(panda_spr2);
//创建 moveAction 动作,第一个参数是动作时间,第二个参数为位置参数,这里是向上1/3,向右1/3
MoveBy* movebyAct = MoveBy::create(3.0f, (ccp(visiableSize.width / 3, visiableSize.height / 3)));
//给精灵设置动作runAction
panda_spr2->runAction(movebyAct);
ScaleTo
ScaleTo动作,就是将精灵(或其他元素)根据原始大小变化到指定倍数的大小,与精灵变化后的大小无关。
//获取屏幕资源
Size visiableSize = Director::getInstance()->getVisibleSize();
//----------------------- scale to 精灵 不管当前变化大小是多少,倍数基准值为原始大小 -----------------------------
//新建熊猫sprite
Sprite* panda_spr3 = Sprite::create("panda2.png");
panda_spr3->setPosition(ccp(visiableSize.width / 2, visiableSize.height / 2));
//在这里我们为了测试,使精灵变大了两倍
panda_spr3->setScale(2.0f);
this->addChild(panda_spr3);
//创建 scaleToAct 动作,第一个参数,动作时间,后面两个,变化倍数值
//由ScaleTo的属性,变化到原始大小的倍数,又因为前面我们放大了两倍
//所以效果是,精灵,缩小了,缩小到了原始大小
ScaleTo* scaleToAct = ScaleTo::create(3.0f, 1.0f, 1.0f);
//给精灵设置动作runAction
panda_spr3->runAction(scaleToAct);
ScaleBy
ScaleBy的属性,根据精灵当前大小,进行变化倍数,与精灵的原始大小无关。
//获取屏幕资源
Size visiableSize = Director::getInstance()->getVisibleSize();
//----------------------- scale by 精灵 倍数基准值为当前大小 -----------------------------
//新建熊猫sprite
Sprite* panda_spr4 = Sprite::create("panda2.png");
panda_spr4->setPosition(ccp(visiableSize.width / 2 + 200, visiableSize.height / 2));
panda_spr4->setScale(2.0f);
this->addChild(panda_spr4);
////创建 scaleByAct 动作,第一个参数,动作时间,后面两个,变化倍数值
//由ScaleBy的属性,根据当前大小,进行变化倍数,这里就是1.0,就是在当前大图像下变1.0倍,就是不变
//所以效果是,精灵,并没有发生改变,不会像 scaleTo 一样变回去
ScaleBy* scaleByAct = ScaleBy::create(3.0f, 1.0f, 1.0f);
//给精灵设置动作runAction
panda_spr4->runAction(scaleByAct);
类比起来,实现是很简单的,多做几组参数,就能发现其中规律了。
Blink
Blink就是闪烁动作了,相对来说就更简单了。
//----------------------- blink -----------------------------
//获取屏幕资源
Size visiableSize = Director::getInstance()->getVisibleSize();
//新建熊猫sprite
Sprite* panda_spr1 = Sprite::create("panda2.png");
panda_spr1->setPosition(ccp(visiableSize.width / 2 - 200, visiableSize.height / 2));
this->addChild(panda_spr1);
//两个参数,前者动作时间3秒,后者执行次数,10次
Blink* blinkAct = Blink::create(3.0f,10);
panda_spr1->runAction(blinkAct);
~~~