13 May 2015
简单来说就是cocosdx封装好的动画
例如:
bool ActionScene::init() {
if (!Layer::init()) {
return false;
}
Size visibleSize = Director::getInstance()->getVisibleSize();
Vec2 origin = Director::getInstance()->getVisibleOrigin();
auto pika = Sprite::create("pika.jpg");
auto pikaContentSize = pika->getContentSize();
pika->setPosition(visibleSize);
pika->setAnchorPoint(Vec2(1, 1));
this->addChild(pika);
auto pikaMove = MoveBy::create(2, Vec2(-250, 0));
auto pikaScale = ScaleBy::create(2, 2);
pika->runAction(Spawn::create(pikaMove, pikaScale, NULL));
auto logo1 = Sprite::create("logo1.jpg");
logo1->setScale(0.8);
logo1->setPosition(visibleSize / 2);
addChild(logo1);
auto logo2 = Sprite::create("logo2.jpg");
logo2->setScale(0.8);
addChild(logo2);
auto logo3 = Sprite::create("logo3.jpg");
logo3->setAnchorPoint(Vec2(0,0));
addChild(logo3);
logo1->runAction(MoveTo::create(2, Vec2(visibleSize.width - 100, visibleSize.height / 2)));
auto move1 = MoveTo::create(2, Vec2(visibleSize.width - 100, visibleSize.height - 100));
auto move2 = MoveBy::create(2, Vec2(-200, 0));
logo2->runAction(Sequence::create(move1, move2, NULL));
auto move = MoveBy::create(3, Vec2(visibleSize.width / 2, 0));
auto reverseMove = move->reverse();
logo3->runAction(Sequence::create(Sequence::create(move, reverseMove, NULL), CallFunc::create([](){
CCLOG("Action End!");
}), NULL));
return true;
}与普通Action使用几乎一样,但是调用的类对象由变为NodeGrid,例如:
auto logo4 = NodeGrid::create();
auto tmp = Sprite::create("logo4.jpg");
auto size = tmp->getContentSize();
logo4->addChild(tmp);
logo4->setPosition(size.width / 2, visibleSize.height - size.height / 2);
addChild(logo4);
logo4->runAction(Shaky3D::create(10, Size(50, 50), 5, false));