首页 > 代码库 > cocos3 动作和帧动画

cocos3 动作和帧动画

// on "init" you need to initialize your instancebool HelloWorld::init(){    //////////////////////////////    // 1. super init first    if ( !Layer::init() )    {        return false;    }        Size visibleSize = Director::getInstance()->getVisibleSize();        auto label = LabelTTF::create("jikexueyuan", "Courier", 30);    label->setPosition(visibleSize.width/2, visibleSize.height/2);    addChild(label);        auto listener = EventListenerTouchOneByOne::create();    listener->onTouchBegan = [label](Touch *t,Event *e){                if (label->getBoundingBox().containsPoint(t->getLocation())) {            //            label->runAction(MoveTo::create(1, Point(100, 100)));//            label->runAction(MoveBy::create(1, Point(-50, -50))->reverse());            //            label->runAction(Spawn::create(MoveBy::create(1, Point(100, 100)), RotateBy::create(1, 360),NULL));            //            label->runAction(Sequence::create(MoveBy::create(1, Point(100, 100)),RotateBy::create(1, 360), NULL));                                    label->runAction(Sequence::create(                                              MoveBy::create(1, Point(100, 100)),                                              RotateBy::create(1, 360),                                              CallFunc::create([](){                MessageBox("Action complete", "complete");            }),NULL));        }                return false;    };    Director::getInstance()->getEventDispatcher()->addEventListenerWithSceneGraphPriority(listener, label);    //    label->runAction(Repeat::create(RotateBy::create(1, 180), 3));//    label->runAction(RepeatForever::create(RotateBy::create(1, 180)));                auto cache = SpriteFrameCache::getInstance();    cache->addSpriteFramesWithFile("anim.plist");        Vector<SpriteFrame*> vec;    char name[20];    memset(name, 0, 20);    for (int i=0; i<20; i++) {        sprintf(name, "anim%04d",i);        vec.pushBack(cache->getSpriteFrameByName(name));    }        Animate * a = Animate::create(Animation::createWithSpriteFrames(vec,0.1f));    auto sprite = Sprite::create();    sprite->setPosition(200, 200);    addChild(sprite);        sprite->runAction(RepeatForever::create(a));        return true;}

 

cocos3 动作和帧动画