首页 > 代码库 > 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 动作和帧动画
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。