先月になりますが、ゲームアプリ「十二支バトル ~ ボール当てゲーム編」をリリースしました。
十二支になれなかったネコが主人公で、十二支にバトルを挑むというコンセプトですが、実はこれは後付けで、ゲーム用のオープンソースライブラリ「cocos2d-x」を用いて、ボールを飛ばすゲームを作ってみたい、というか作っておきたいということから始まりました。
できたゲームが以下のようなものです。
画面構成は「ス○2」がかなりモデルになっています。。
以下からダウンロードできます。よかったら遊んでみてください。
ボールを投げる部分の実装について、本当に抜粋ではありますが説明します。
cocos2d-x(ver.2.x の場合ですが)では物理エンジンの Box2d も含んでいますので、これを使用します。
b2Body クラスのインスタンスを body としますと、body つまりボールに力を与える処理は以下のようにしています。
(実際は前処理がそれなりにありますがここでは省略します)
// iPower は直前のUIから取得 body->ApplyLinearImpulse(b2Vec2((float32)iPower * cos(56.0 * M_PI / 180.0), (float32)iPower * sin(56.0 * M_PI / 180.0)), body->GetWorldCenter()); body->ApplyAngularImpulse(0.0);
iPower の値を変えることでボールの飛距離が変わります。ゲームではボタンの長押しで iPower の値を可変になるようにしました。
ボール同士やボールとキャラクターとの衝突判定の取得についても cocos2d-x で用意されています。便利ですね。
このアプリでは、cocos2d-x のバージョンは ver.2.2.3 を用いました。ただ、本家では Ver.3.x が完全に主流になりつつあるようですので、次回作ではどうするかを考えないといけなさそうな感じではあります。。