2015年

3月

02日

Cocos2d-x Ver 3.x 画面タッチで画面遷移

    // 画面をタッチしたときに次の画面へ遷移

    auto listener = EventListenerTouchOneByOne::create();

    listener->onTouchBegan = [this](Touch* touch, Event* event){

        // 何度も押せないように一度押したらアクションを無効化する

        this->getEventDispatcher()->removeAllEventListeners();

        // 0.5秒待ってからCallFuncを呼ぶ

        auto delay = DelayTime::create(0.5);

        // 次の画面に遷移を始めるアクション

        auto starGame = CallFunc::create([]{

            // 次の画面

            auto scene = Scene01::createScene();

            // シーンを移動する

            auto transition = TransitionProgressInOut::create(1.5, scene);

            // (replaceScene)直前のsceneはもう使わないから捨ててしまう方法

            Director::getInstance()->replaceScene(transition);

            

        });

        this->runAction(Sequence::create(delay, starGame, NULL));

        

        return true;

    };

    

    this->getEventDispatcher()->addEventListenerWithSceneGraphPriority(listener, this);