cocos2dのver2.0が出ているのは知っていたのですが、私がアプリを作り始めた時にはまだ正式版ではなかったのでver1.xで開発をしていたのですが、 今月に入りメモリーの問題で、cocos2d2.0に急遽変更することにしました。 プログラミングの初心者ということで、移行作業にも非常に苦労をしました。今回はそのバージョンアップ過程をブログにまとめていこうと思います。
アプリをcocos2d 2.0に変更する
まずは、cocos2dのバージョンを2.0に変更します。
まずは2.0をダウンロードします。 Download | cocos2d for iPhone
ファイルの入れ替え 次に、先ほどダウンロードしたを入れ替えます。
ターミナルを開いて、下記を順番に打ち込んでいきます。 [c] //yougameprogectはあなたのアプリの場所を指定してください。 $ cd ~/yougameproject/libs/ $ rm -rf cocos2d/ $ rm -rf cocoslive/ $ rm -rf CocosDenshion/ $ rm -rf TouchJSON/ $ rm -rf FontLabel/ $ rm -f LICENSE*.txt
//「cocos2d-iphone-2.0」にはダウンロードしたcocos2d2.0の場所を指定してください。 //私は、cocos2d kazmath CocosDenshionの3つを入れました。 //あなたのアプリに合わせて、導入するファイルを選んでください。 $ cp -R ~/src/cocos2d-iphone-2.0/cocos2d . $ cp -R ~/src/cocos2d-iphone-2.0/external/kazmath . $ cp -R ~/src/cocos2d-iphone-2.0/CocosDenshion/CocosDenshion .
[/c]
これでプロジェクトファイルの中身は入れ替わりました。
xcodeにファイルを移す
これではまだ完全にファイルの入れ替えができていません。 xcodeを開いてlibsフォルダの中身を修正します。1、cocos2dlive,CocosDenshion,TouchJSON,FontLabelなどをDel(デリート)で削除します。
2、プロジェクト内のファイルをxcodeのlibs内に移動させます。
これであなたのアプリはcocos2d ver2.0になりました。
cocos2d 2.0にした際の修正
cocos2dのファイルを変えた後に、色々と修正をしなくては行けないことがあります。これは、あなたの利用しているコードによって違うので一概には言えませんが、一度ビルドをしてみるとエラーや警告がでてきます。 これを一つ一つ修正しましょう。kazmath
cocos2d 2.0からkazmathと呼ばれるライブラリーが追加されています。 これを参照しているクラスも結構あります。まずはこれを参照できるようにしてあげましょう。[Build Setting]内の、[Search Paths]=>[Header Search Paths]にkazmathのフォルダの場所を指定します。 このように入力すればいいでしょう。 [c] "${SRCROOT}/【プロジェクト名】/libs/external/kazmath/include" [/c]
AppDelegateの修正
次はAppDelegateの修正です。 これは、一概に何を変更したらいいのかは言えませんが、私はアプリの方向の修正。EAGLViewが利用できないのでこれの修正などをしました。アプリの方向は以下のようにコードを付け加える [c] -(BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { //横向き return UIInterfaceOrientationIsLandscape(interfaceOrientation); } [/c]
EAGLViewの代わりに、CCGLViewクラスを利用する。
このAppDelegateに関しては、cocos2d2.0の「テンプレート」を利用して、その中身を参考にするといいかもしれません。
使えない各種クラスのメソッドの変更
APIの変更で、各種クラスのメソッドで利用できないものがあります。 これは、新しく変更していきます。例1,CCMenuItemImage [c] itemFromNormalImage =>itemWithNormalImage [/c]
例2,touchDispatcher(タッチに関する変更) [c] //これはもう利用できない。 [[CCTouchDispatcher sharedDispatcher] addTargetedDelegate:self priority:0 swallowsTouches:YES];
//こちらに変更 [[CCDirector sharedDirector] touchDispatcher]; [/c]
例3、CCAnimate [c] //これが利用できない actionWithAnimation: restoreOriginalFrame:
//こっちに変更 actionWithAnimation: [/c]
例4、SneakyInput 私は、「SneakyInput」というクラスを使っているのですが、これもcocos2d 2.0のために変更しなくてはいけません。 幸いにも、2.0バージョンがありますので、これをダウンロードをして入れ替えます。
参考にしたサイト
cocos2d 2.0にする際に参考にしたサイトです。こちらも合わせて見てください。 prog_guide:migrate_to_v2.0 – cocos2d for iPhonecocos2d 1.0.1から2.0に移行する « mooapp
xionchannel@software: cocos2d 2.0への移行