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
インストールにもし失敗する方は、私の他のエントリーもご覧ください。