2014年7月11日金曜日

cocos2d最新バージョン v3.1非互換に驚愕!(その2)

記事タイトルに「驚愕!」と煽りながら前回の記事ではARC対応程度の非互換だけでしたので、今回はまず現時点までに発見した「驚愕!」の非互換項目を一覧でどうぞ!

<非互換項目>
  • 「SimpleAudioEngine」クラスが無くなっている
    └サウンド再生関連は別のクラスに置き換えとなります。
  • CCLayerクラスが無くなっている
    └「CCScene」と並んで基本的と思われた「CCLayer」クラスがありません。(^_^;)
  • CCMenuクラスが無くなっている
    └こちらも必ず利用する基本的なクラスですが無くなっています。
  • CCSprite等のノード識別に使っていた「Tag」が「Name」に変わっている。
    └「getChildByTag:」,「removeChildByTag:」とかTag値で識別していた箇所は全部修正

まだ、移行作業を始めたばかりですが上記のような「何故それを変える!?」って言いたくなるような根底を揺るがすような非互換が多く一瞬自分の目を疑いたくなりました。(^^ゞ

冷静になって好意的に考えるとこのバージョンから開発ツールのベースとなった(したい?)「SpriteBuilder」使用を前提に考えた改変のような気はします。

「SpriteBuilder」がCCSceneをベースに生成するのでCCLayerは不要にしたとかCCMenuもメニューコントロールのグループ化と配置制御ならばCCLayoutに統合しようとか。。。

また、Tag識別も整数値で識別するよりかは文字列で名前付けした方が分かり易いとの判断なのでしょうけど、イキナリ過ぎるような気はしますね。

でもさすがに今回の改変は下位互換とか常に移行やメンテに重点を置いて考える日本人には理解し難いですね。(^^ゞ 欧米人の割り切り加減には驚くばかりです。。。(^_^;)

と言うことで結論としてはcocos2d v2系列とv3系列は別物と捉えた方が良いと思いますので、既存v2で作成しているプロジェクトはそのままの方が良さそうです。

新規作成で且つ「SpriteBuilder」の開発効率の恩恵を受けたい場合はv3.1の利用も検討できると思います。

私は引き続きv2 → v3.1へのマイグレーション作業は続けていきたいと思いますので、新たに発見した非互換項目については随時当ブログにて公開させていただきます。


ではまた〜

0 件のコメント:

コメントを投稿