cocos2d-x v3 チュートリアル 5

Chipmunk 物理エンジンの追加

元記事はこちらです。
Parkour Game with JavaScript (Cocos2d-JS v3.0) Chapter6

はじめに

Cocos2d-xを使うことで印象的な世界をつくることができます。しかし、やや現実味に欠けます。複雑な計算をすれば、よりリアルにできますが、別の方法として、物理エンジンを使うことでより簡単に実現できます。
物理エンジンは、ゲームをよりリアルにするための、重力、衝突判定、物理シミュレーションを提供してくれます。ここでは、ゲームにChipmunk物理エンジンを使うことにします。

なぜChipmunk 物理エンジンか?

Chipmunk 物理エンジンを使うのは、他の2D用物理エンジンに比べて、よりパワフルだからです。

Chipmunk 物理エンジンでなければ、Box2Dがあります。

Box2Dは、よい2D物理エンジンで、長い間ゲームで使われてきました。多くの2DゲームはBox2D物理エンジンを使っています。

しかし、Chipmunk 物理エンジンは、もっと良い点があります。Chipmunkのサイトで詳細は確認してください。

Chipmunk 物理エンジンをCocos2d-xで使う

Chipmunk 物理エンジンをのワールドの初期化

地面の高さとプレーヤーの最初のX座標を表すグローバル変数を Global.cppGlobal.h に作成します。
ここには、今後もグルーバルな変数等を追加していきます。

  • Global.h

  • Global.cpp

一般的には、1つのゲームには1つの 物理空間が必要です。この空間はいろいろなレイヤーで共有されます。
Cocos2d-x Ver.3 では、物理空間付きのシーンを作成することができます。

これが、物理空間付きのシーンを作成するように変更された createScene() 関数のコードです。

上のコードの中で、setDebugDrawMask 関数を呼び出している部分のコメントを外すと、デバッグ用で、衝突判定の範囲を表す表示が追加されます。
まず、先程作成した Global.h を読み込むように追加します。
次に、PlayScene.cppの init 関数を変更しましょう。 initPhysics ローカル関数の呼び出しを追加します。

ランナーのスプライトのための物理要素の追加

最後に、スプライトシートでランナーを作成します。 GameplayLayer.cpp を書き換えます。
まず、先程作成した Global.h を読み込むように追加します。
次に、実際に物理ボディを持ったランナーを作成します。

Physics1

まとめ

ここでは、Chipmunk物理空間を設定する方法や物理空間の境界を設定する方法、剛体をシェイプと関連付ける方法を紹介しました。また、スプライトをよりリアルにする物理を追加しました。

Digiprove sealCopyright secured by Digiprove © 2014

cocos2d-x v3 チュートリアル 5」への1件のフィードバック

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください