zoukankan      html  css  js  c++  java
  • cocos3 动作和帧动画

    // 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;
    }
  • 相关阅读:
    [BZOJ2434][Noi2011]阿狸的打字机
    [BZOJ2303][Apio2011]方格染色
    [BZOJ1912][Apio2010]patrol 巡逻
    [BZOJ1179][Apio2009]Atm
    [BZOJ1178][Apio2009]CONVENTION会议中心
    Lock-less buffer management scheme for telecommunication network applications
    vue-router@2.x 只适用于 Vue 2.x 版本。
    jQuery 捕获
    jQuery Chaining
    jQuery Callback 方法
  • 原文地址:https://www.cnblogs.com/yufenghou/p/4149099.html
Copyright © 2011-2022 走看看