cocos2d-x 画面切り替え効果をランダムで行う

cocos2d-x 画面切り替えをランダムで行う

 

 

 

void HelloWorld::nextScene(float frame) {

    Scene* fade = NULL;

    do {

        

        fade = this->getNextTransitionScene(HelloWorld::createScene(), 1.0f);

    } while(NULL == fade);

    

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

}

 

// ランダムで次のSceneを取得する

Scene* HelloWorld::getNextTransitionScene(Scene* nextScene, float transitionTime) {

    

    Scene* fade = NULL;

    int fadeNo = 0;

    srand(time(NULL));

    fadeNo = rand() % 36;

    

    switch(fadeNo) {

        case 0:

            fade = TransitionMoveInT::create(transitionTime,nextScene);

            break;

        case 1:

            fade = TransitionMoveInB::create(transitionTime,nextScene);

            break;

        case 2:

            fade = TransitionMoveInL::create(transitionTime,nextScene);

            break;

        case 3:

            fade = TransitionMoveInR::create(transitionTime,nextScene);

            break;

        case 4:

            // フェード

            fade = TransitionFade::create(transitionTime,nextScene, Color3B::WHITE);

            break;

        case 5:

            fade = TransitionFadeBL::create(transitionTime,nextScene);

            break;

        case 6:

            fade = TransitionFadeTR::create(transitionTime,nextScene);

            break;

        case 7:

            fade = TransitionFadeUp::create(transitionTime,nextScene);

            break;

        case 8:

            fade = TransitionFadeDown::create(transitionTime,nextScene);

            break;

        case 9:

            fade = TransitionCrossFade::create(transitionTime,nextScene);

            break;

        case 10:

            fade = TransitionJumpZoom::create(transitionTime,nextScene);

            break;

        case 11:

            fade = TransitionFlipY::create(transitionTime,nextScene);

            break;

        case 12:

            fade = TransitionFlipX::create(transitionTime,nextScene);

            break;

        case 13:

            fade = TransitionFlipY::create(transitionTime,nextScene);

            break;

        case 14:

            fade = TransitionFlipAngular::create(transitionTime,nextScene);

            break;

        case 15:

            fade = TransitionPageTurn::create(transitionTime,nextScene,false);

            break;

        case 16:

            fade = TransitionPageTurn::create(transitionTime,nextScene,true);

            break;

        case 17:

            // オーバーライドしないと使えないため一旦コメントアウト

            //            fade = TransitionProgress::create(transitionTime,nextScene);

            break;

        case 18:

            fade = TransitionProgressInOut::create(transitionTime,nextScene);

            break;

        case 19:

            fade = TransitionProgressOutIn::create(transitionTime,nextScene);

            break;

        case 20:

            fade = TransitionProgressRadialCW::create(transitionTime,nextScene);

            break;

        case 21:

            fade = TransitionProgressVertical::create(transitionTime,nextScene);

            break;

        case 22:

            fade = TransitionProgressRadialCCW::create(transitionTime,nextScene);

            break;

        case 23:

            fade = TransitionProgressHorizontal::create(transitionTime,nextScene);

            break;            

        case 24:

            fade = TransitionZoomFlipX::create(transitionTime,nextScene);

            break;

        case 25:

            fade = TransitionZoomFlipY::create(transitionTime,nextScene);

            break;            

        case 26:

            fade = TransitionRotoZoom::create(transitionTime,nextScene);

            break;            

        case 27:

            fade = TransitionJumpZoom::create(transitionTime,nextScene);

            break;            

        case 28:

            fade = TransitionZoomFlipAngular::create(transitionTime,nextScene);

            break;            

        case 29:

            fade = TransitionSlideInB::create(transitionTime,nextScene);

            break;            

        case 30:

            fade = TransitionSlideInL::create(transitionTime,nextScene);

            break;            

        case 31:

            fade = TransitionSlideInR::create(transitionTime,nextScene);

            break;            

        case 32:

            fade = TransitionSlideInT::create(transitionTime,nextScene);

            break;            

        case 33:

            fade = TransitionSplitCols::create(transitionTime,nextScene);

            break;            

        case 34:

            fade = TransitionSplitRows::create(transitionTime,nextScene);

            break;            

        case 35:

            fade = TransitionShrinkGrow::create(transitionTime,nextScene);

            break;            

        case 36:

            fade = TransitionTurnOffTiles::create(transitionTime,nextScene);

            break;            

    }

    

    return fade;

    

}

cocos2d-xでlibtool: can't locate file

Mac OSをアップデートしたせいか、cocos2d-xのビルド時に

cocos2d-xでlibtool: can't locate file

が出るようになった。

 

2時間くらい調べてみると、どうやら、

プロジェクト内のcocos2d-xのexternalフォルダにあるライブラリ(*.a)ファイルが

おかしくなっているようだ。

 

cocos2d-xのホームディレクトリのexternalフォルダ内のものに置き換えて、

ライブラリへのリンクを貼り直したら治った。

 

無駄な時間を過ごしたなあ。

UIImageからByte配列を生成する方法

iOS側で生成したUIImageのデータをcocos2d-xのCppインスタンスにByte配列で渡すため、変換処理を作った。

要メモリの開放

 

    UIImage* uiImage = [UIImage initWithName:@"xxxx.png"];    

    NSData* data = UIImagePNGRepresentation(uiImage);

    NSUInteger len = [data length];

    Byte *byteData = (Byte*)malloc(len);

    memcpy(byteData, [data bytes], len);

 

Objective-CからSwiftのクラスを使用する。

NSObjectを継承してビルドすれば、

($Pruduct Name)-Swift.hが自動生成されるので、

 

import  "($Pruduct Name)-Swift.h"

すればいいと各サイトで書いているが、

file not foundのエラーになった。

 

間違えてないはずなのになあと設定を探すと

自動生成されるファイル名の設定を見つけた。

 

Build-Settings->Objective-C Generated Interface Header Name 

 

設定では、

"-Swift.h"

となっていたため、

"($Pruduct Name)-Swift.h"

に直すと解決できた。

windowsで複数のDocuworksファイルを一括印刷する。

windowsで複数のDocuworksファイルを一括印刷する方法。

 

エクスプローラでファイルを選択して、

右クリックメニューの印刷で可能。

 

注意として、印刷確認ダイアログが出ないので、実行には慎重に