cocos2d-JSで作業するためのスニペット的なもの@自分用
|cocos2d-JS 3.0シリーズの続きです。
多分便利なスニペット
毎回探すのが面倒なので、今日は自分用のスニペットです。
localStorage
Nativeと連携するとSqliteのラップとして動作するlocalStorageですが、webでデバックするとエラーになるので初期化します。
if(!window.sys){ window.sys = { localStorage : localStorage } }
言語設定
なぜか日本語が8に設定されていますが、実機で確認すると9が正しい値のようです。
だれかpull requestしないかな。。
if(!window.sys){ window.sys = { language : 9 //WEBでデバックするときは取り敢えず日本語にしておく } } else { sys.language = cc.Application.getInstance().getCurrentLanguage(); }
プラットフォーム判定
iOSとAndroidでロジックを切り替える時のやつです。
if(cc.TARGET_PLATFORM == undefined){ cc.TARGET_PLATFORM = { ANDROID : 3, IPHONE : 4, IPAD : 5, PC_BROWSER : 101 } } if(!window.sys){ g.platform = cc.TARGET_PLATFORM.PC_BROWSER; //取り敢えずWEBブラウザにしておく } else { g.platform = cc.Application.getInstance().getTargetPlatform(); }
タッチイベント
3.0からタッチイベントの仕様が変わったので対応する必要あり。
cc.eventManager.addListener( cc.EventListener.create({ event : cc.EventListener.TOUCH_ALL_AT_ONCE onTouchesBegan : function(touches, event){}, onTouchesMoved : function(touches, event){}, onTouchesEnded : function(touches, event){} }),this);
メニューの追加
cocos2d-JSだと何故か無効時のspriteも指定しないとエラーになる。
//メニューの表示 var menu = cc.Menu.create( cc.MenuItemSprite.create( cc.Sprite.create([画像]), cc.Sprite.create([画像]), cc.Sprite.create(), //Xcodeで落ちない用にダミーで設定 this.onCallback, this ) );
トランジション画面遷移と掃除
トランジションを使うとiOSで確認した時にonExitでエラーになるため、後処理の場所を変更する。
var transition = cc.TransitionSlideInL.create (0.3,new MyScene()); //左へスライド cc.director.pushScene(transition); ・・ #onExitで処理すると落ちる onExitTransitionDidStart : function(){ //追加済みのイベントを削除 cc.eventManager.removeAllListeners(); //追加済みのオブジェクトを解除 this.removeAllChildren(); }
自分用ですが、参考にしてみてください。