Cocos2d-x が 3.4 から 3.5 にバージョンアップされました。

新しくプロジェクトを作成する場合は、セットアップ記事と同じ手順で3.5の環境が整うと思います。

しかし、既存のプロジェクトをバージョンアップさせたい場合、一から構築するのは大変なので、
以下のような手順でバージョンアップさせました。(たぶん大丈夫なはず)

なお記事中は、当ブログのセットアップ記事と同じ環境を基準にWindows環境で紹介していますが、Mac環境でも基本は変わりません。
また、Gitをバリバリ使える方は marutanm様の「複数バージョンのCocos2d-xを簡単、便利、管理」の記事などを参考にしたほうが良いかもしれません。

 

公式サイトからCocos2d-x 3.5 をダウンロード

http://www.cocos2d-x.org/download

解凍して、C:\cocos2d-x\ に解凍する。
また、前の3.4のフォルダを3.4_oldに変更する。(余談参照)

cocos_verup_1

 

セットアップ(環境変数書き換え)

C:\cocos2d-x\cocos2d-x-3.5\setup.py
を実行。

3.4の時点で、Android関連のパスは設定済みなのでそのまま完了するはず。
環境変数を適用するために再起動。

その後、コマンドプロンプト(cmd.exe)でcocosコマンドを実行する。

cocos

すると、cocosコマンドに紐付けられているパスが確認できる。
ここで、3.5のパスを見ていれば成功。

cocos_verup_3

 

C++用ライブラリ群を取り出す

cocos2d-xの3.5バージョンのC++用のライブラリ群が欲しいので、cocos new を使ってプロジェクトを作る。
(プロジェクト名やドメイン、パスは任意)

cocos new TemplateCpp -p net.cretia.TemplateCpp -l cpp -d C:\cocos2d-x

できあがったプロジェクトの「cocos2d」フォルダが欲しいライブラリ群。

cocos_verup_4

※以下の手順を進める前に、必ず既存のバージョンアップしたいプロジェクトをバックアップしておくこと!

新しいcocos2dフォルダをバージョンアップさせたい既存のプロジェクトのcocos2dフォルダと置き換える。
(既存のcocos2dフォルダを削除して、新しいcocos2dフォルダをコピー)

cocos_verup_5

 

eclipseの設定

Window > Preferences でウィンドウを開き、
General -> Workspace -> Linked Resources で設定した、COCOS2DXのパスを変更する。

cocos_verup_6

3.4 → 3.5へ

Name: COCOS2DX
Location: C:\cocos2d-x\cocos2d-x-3.5

cocos_verup_7

 

Visual Studio の設定

3.4 → 3.5 へのバージョンアップの場合、そのまま実行するとResoucesフォルダを参照せずにエラーとなってしまう。

これは、proj.win32/プロジェクト名.vcxproj というプロジェクトファイルに変更があり、
ビルドイベントでResouceフォルダの内容を Debug(Release).win32フォルダへコピー、参照するようになったためのようだ。
(これまでは配布する際にはResouceフォルダの中身をexeのフォルダへコピーしてあげる必要があった)

新しく作ったTemplateCppプロジェクトの proj.win32/TemplateCpp.vcxproj を既存プロジェクトにコピーし、
ファイル名を変更した後、VisualStudio内で既存プロジェクトと同じようにソースを追加するなどの設定を復元して対処した。

注意点として、初回の時やResouceフォルダの画像だけ差し替えてソースコードをいじらずにビルドする場合は、
ビルドイベントが実行されずに、Resourceフォルダは上書きコピーされないので注意する。
リビルドでもよいが、時間がかかるのでソースの上書き保存がおすすめ。

 

余談

setup.pyの実行時、3.5と同じ階層に以前の3.4のフォルダがそのままの名前で残っていると、パスが3.4のままになる事象に陥った。

cocos_verup_2

おそらく、フォルダ名にドット(.)が付いているのがよくない(正規表現?)のだと思うが、公式のフォルダ名なので前のフォルダのみ_oldを付けて対処することとしている。
3.5に無事移行できたのであれば、前の3.4のフォルダは不要になるので削除しても構わない。