// on "init" you need to initialize your instance bool 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; }
时间: 2024-10-08 20:05:03