auto glview = Director::getInstance()->getOpenGLView();
auto visibleOrigin = glview->getVisibleOrigin();
auto visibleSize = glview->getVisibleSize();
Size size = Director::getInstance()->getVisibleSize();
auto moveto = MoveBy::create(1.0,Vec2(30,0));
auto moveBack = moveto->reverse();
auto ratateBy = RotateBy::create(1.0,180);
auto scaleBy = ScaleTo::create(1.0,-2.0);
auto action = Sequence::create(moveto,moveBack,ratateBy,scaleBy,NULL);
Sprite* normalSprite1 = Sprite::create("animationbuttonnormal.png");
normalSprite1->setPosition(100,270);
normalSprite1->setFlippedY(true);//Y轴反转
this->addChild(normalSprite1);
normalSprite1->runAction(action);
cocos2d::ui::Scale9Sprite* normalSprite2 = cocos2d::ui::Scale9Sprite::create("animationbuttonnormal.png");
normalSprite2->setPosition(350,270);
normalSprite2->setFlippedY(true);
this->addChild(normalSprite2);
normalSprite2->runAction(action);
auto action2 = action->clone();
cocos2d::ui::Scale9Sprite* sp1 = cocos2d::ui::Scale9Sprite::create("animationbuttonnormal.png");
sp1->setPosition(550,270);
sp1->setScale(1.2f);
sp1->setContentSize(Size(100,100));
sp1->setColor(Color3B::GREEN);
this->addChild(sp1);
sp1->runAction((FiniteTimeAction*)action2);//FiniteTimeAction派生出的两个主要类分别是瞬时动作ActionInstant和持续性动作ActionInterval。
//瞬时动作指能够立刻完成的动作,是FiniteTimeAction中动作持续时间为0的特例。这类动作是在下一帧会立刻执行并完成的动作,如设定位置、设定缩放等。
cocos2d::ui::Scale9Sprite* sp2 = cocos2d::ui::Scale9Sprite::create("animationbuttonnormal.png");
sp2->setPosition(550,400);
sp2->setPreferredSize(sp1->getContentSize() * 1.2f);//setPreferredSize 设置需要生成的尺寸大小
sp2->setColor(Color3B::GREEN);
sp2->setContentSize(Size(100,100));//getContentSize函数来获得节点原始的大小。只是逻辑尺寸,不是像素。返回CGSize类型。
//boundingBox函数来获得经过缩放和旋转之后的外框盒大小,返回CGRect类型。
//有个问题最近才遇到,父精灵进行缩放处理,会对子精灵进行标记(boolean值),
//在实际绘制过程中会影响子精灵显示大小,但并不改变子精灵的getBoundingBox所获得的值,也就是只有直接setscale才会影响getBoundingBox数值。
this->addChild(sp2);
auto action3 = action->clone();
sp2->runAction((FiniteTimeAction*)action3);