Seasons.NET

ちょっとした技術ブログです

cocos2d 2.0正式版リリース!!

cocos2d v2.0正式版がついにリリースされました!

cocos2d v2.0 released! | cocos2d for iPhone

 

早期に導入されていた@ajinotatakiさん情報によるとv1.xからv2.0に乗り換えるだけでパフォーマンスがアップするようです!これは素晴らしい!

テクスチャアトラスやパーティクルにVBOではなく、VAO( Vertex Array Object )を採用したせいもあるのだと思います。これは、AppleのiOSにおけるOpenGL ES専用の機能です。

 

移行方法もまとめられている方も早速いらっしゃるようで、

cocos2d 1.0.1から2.0に移行する « mooapp

こちらの方も同様にパフォーマンスが改善されたとのことです^^

 

さて、肝心のアップデート内容ですが、

  • OpenGL ES 2.0サポート
  • 最新版の物理エンジン(Physics engine)をサポート
  • よりよいDoubleSpriteのサポート
  • Retina Display用のコードをより簡単に記述しやすく
  • より速いMotionStreakのコード
  • 新しいProgressTimer アクション
  • 新しいトランジション
  • よりよいLabelsラベルのサポート
  • よりよいテンプレート
  • v1.1βに含まれているパーティクルバッチのような機能
  • 多くのバグフィックス
  • …and more

 

さて、上記内容を踏まえてcocos2d v2.xについてポイントを抑えておきたいと思います。

1. OpenGL ES 2.0によるシェーダをサポート

cocos2d 1.xではシェーダーを使わず、全てのデバイスをサポートするためのバージョンとして存在していましたが、2.0からは、Shaderベースで構築されているため、バリバリにシェーダーを使うことが出来ます。またその影響もあってかパフォーマンスも非常に改善されているようです。

iPod touch 1st, 2nd。iPhone 3Gをサポートすることはできなくなりますが、これらの端末の割合はかなり少なくなっているため、思い切って切り捨てても問題ないでしょう。

 

2. DoubleSpriteのサポート

Retina Display上では、RetinaDisplayの画像を使って描画を行いますが、メモリの消費も激しいRetina Display用の解像度の画像を使わず、非Retina Display用の画像を用いて描画したい時があります。その時にDoubleSpriteを利用しましょう。

DoubleSpriteは、非Retinaの画像を読み込み、Retina Displayのデバイスでも扱うことができます。

詳しくは、SpriteTest.mを確認してください。

 

3. 新しいトランジション

CCTransitionProgressHorizontal, CCTransitionProgressVertical, CCTransitionProgressInOut and CCTransitionProgressOutIn

が新しく仲間入り。

詳しくは、TransitionsTest.mを確認してください。

 

4. LabelTTFの改善

複数行のサポートや読み込み時間の短縮。縦のアライメントも追加。

その他改善事項がいくつか。

 

5. Kazmathライブラリの追加

3次元のマトリックス、プロジェクション計算、OpenGLのマトリックススタック周りの外部ライブラリとして採用。

 

6. 細かい改善(注目すべきものを赤字)

  • CCNodeにuserObjectの追加:userDataに似ているが、id型で保持
  • テンプレートではき出すプロジェクトで起動時のちらつきを改善するコード追加
  • RenderTextureに深度/ステンシルのサポート追加
  • CCArray:CCARRAY_FOREACHにARCサポート
  • CCArray:replaceObjectAtIndex, isEqualToArrayメソッド追加
  • Action:Catmull Rom By/To and Cardinal Spline By/Toアクション追加(パスに沿う)
  • Action:ActionTargeted追加。他のオブジェクトのアクションと連携が可能。
  • ActionManager:resume、pauseの追加
  • DrawingPrimitives:ccDrawCatmullRom, ccDrawCardinalSpline追加
  • useSelfRender / useBatchNode をsetBatchNodeに置き換え
  • NPOTテクスチャのサポート
  • パーティクル、テクスチャアトラス描画にVAOのサポート
    (GL_APPLE_vertex_array_object)

 

より詳細な内容を確認されたい方は、以下をご覧ください。

release_notes:2_0_0 – cocos2d for iPhone

 

インストールにもし失敗する方は、私の他のエントリーもご覧ください。

cocos2dのインストールでエラーが出るときの対処法 - Seasons.NET