読者です 読者をやめる 読者になる 読者になる

夏までにiPhone アプリつくってみっか!

趣味でiPhone/Androidアプリを開発し、日々勉強した事を書いています。オープンワールド系レースゲームをUnityで開発中です。

【cocos2d】背景をどう実装するか

cocos2d

ゲーム性にはあまり影響しないものの、縦スクロールシューティングゲームの見た目に一番影響するのが背景。これをどう表現するかをまず考えたいと思います。

まず最初に思いつくのが巨大な一枚絵。面の始めから終わりまでを長い一枚絵で描いてあとはそれをスクロールさせれば良さそうに思えますが、絵を納めるテクスチャのサイズに上限があるようです。Learn Cocos2d 2: Game Development for Iosによると、iPhone3GSおよびiPhone4で最大2048x2048ピクセル、iPhone4Sで最大4096x4096ピクセルとのこと。残念ながらiPhone5の発売前に書かれた本なのでiPhone5についての記述はありませんでした。

仮に4096ピクセルだとしてもiPhone4SのRetinaディスプレイの長辺サイズの960ピクセルの4倍ちょっとなので、あっという間に端まできてしまいそうです。

1画面分スクロールするのにかかる時間を10秒、ステージの長さを2分と仮定すると、120÷10 =12画面。まあざっくりと12,000ピクセルくらいの長さの絵を描く必要があります。それを2000ピクセルくらいずつで6個に切り分けてテクスチャに収納すれば良さそうです。

テクスチャの縦横それぞれのサイズは2の乗数単位なので、2048の下は1024、その下は512となります。iPhoneの画面の短辺は640ピクセルなので、512では収まらず、1024にする必要があります。なので、背景用のテクスチャは2048x1024のサイズの物を6個使う事にします。色深度を16ビット(2Byte)にした場合、2048x1024x2x6 = 24MB。

RAM容量512MBのiPhone4/4Sではアプリに250MBくらい使えるので、まだまだ余裕があります。iPhone3GSのRAM容量は256MBでアプリに使える容量は70MBと少ないのですが、Retinaディスプレイではないのでテクスチャは1/4の6MBですむのでこちらも問題ないでしょう。

 

別な方法として、ファミコンのソフトでよく見られるタイル状の絵を敷き詰めるTilemapという機能をcocos2dは備えているのですが、大量の小さなドット絵を上下左右うまくつながるように描くのが大変そうなので、今回は使用しません。