【勉強】cocos2dで試しにちょっとしたアクションゲームを作ってみた
2011-10-24 (月) 23:55 cocos2d
ここ6日ほど次のページを参考にしながら、ちょっとしたアクションゲームを作ってみました。
・「cocos2d」を使ってiPhoneゲームを作ってみよう - @IT
・cocos2dで最小のゲームを作る - shukujitsuの開発ブログ
↑の修正版
「cocos2dで最小のゲームを作る」をバージョンアップに合わせ修正 - sky hopper’s diary
完成したゲームの画面はこれです!

以前作ったものをベースにしました。
内容としては、操作できるキャラクターを設定し左右の壁を交互にタッチすると得点が上がるというものです。
敵(アイコン)にぶつかると減点され、ある得点以上になるとゲームクリアとなるようにしました。
作ってみるとより楽しめることが分かりました。
さて作成にあたって課題が出てきたので列挙してみます。
1. 大量のスプライトの出現方法
2. 当たり判定
3. ボタン(スプライト)を押している間同じ動作をさせる方法(左右の移動)
4. 移動の加速方法
5. Retinaディスプレイへの対応方法
1.については、てぃーの作ったものは最初から敵は3つと決めていたのですが、もしこれを大量に20個ほど作るとしたらどうすればいいのかという感じです。
おそらく「敵クラス」を作り、それをインスタンス化して表現すればいいと思うのですが。
2.については、まず上のように大量の敵クラスをインスタンス化した場合どう処理すればいいか混乱します。
すべての敵を配列に入れ、1/60秒ごとにすべての当たり判定をするのでしょうか。
CPUの処理速度が低くはないのでこれでいいと思うのですがコマ落ちなどを防ぐためにも何らかの方法があると思います。
また、当たり判定としてはどの箇所に当たれば当たりとするかは難しいですね。
今回のものは四角形同士の判定としたので楽だったのですが、実際のゲームでは特にキャラクターは四角形でないのでまた当たった部分によっては当たりとしないこともあるので複雑です。
3.については、Objective-Cでもcocos2dとしてもずっとタッチをしているというメソッドはないようです。
タッチ初め(ccTouchesBegan)にタッチしたというフラグを立て、タッチ終わり(ccTouchesEnded)にフラグを閉じることで、フラグが立っている間はずっとタッチしているということを表すようです。
4.については、スーパーマリオのBダッシュのように方向ボタンを押しながら加速ボタンを押すという、同時に2つ以上タッチする方法がうまくいきませんでした。
5.については、いつも通りに「~@2x.png」を作りましたが、Retinaディスプレイでは下のようにうまく表示ができませんでした。
cocos2dでは別の方法が必要なようです(汗

以上、自分で実際に作ってみて感じたことでした。
やはり自分で工夫しながら作らないと課題は見えてきませんね^^
さて今後は次の「cocos2d for iPhoneレッスンノート」
cocos2d for iPhoneレッスンノート
(2011/09/22)
加藤寛人、佐藤伸吾 他
商品詳細を見る
以前「cocos2dで作る iPhone&iPadゲームプログラミング」をやろうかと思っていたのですがこちらの方はレベルが高いようで、まずは入門書として「cocos2d for iPhoneレッスンノート」を使おうと思っています。
↓この記事が参考になったら拍手をクリックお願いします。今後のブログ作りに役立てたいので。
- 関連記事
-
- 【勉強】cocos2d for iPhoneレッスンノート(その2、第2章の前半) (2011/10/27)
- 【勉強】cocos2d for iPhoneレッスンノート(その1、第1章と第5章) (2011/10/25)
- 【勉強】cocos2dで試しにちょっとしたアクションゲームを作ってみた (2011/10/24)
- 【勉強】cocos2dについて「@IT」のHPを使わせていただいて (2011/10/17)
- 【勉強】cocos2dについて調べたこと (2011/10/12)