iPhoneのゲームアプリをつくろうって本を読み終えて、今はSpriteKitではじめる2Dゲームプログラミングって本を読んでます。
それでこのSpriteKitではじめるって本の最初のほうに、横スクロールゲームを作るやつがあるんですよ。揚げ↑揚げ↑エビフリャーっていうファンキーなゲームが。
これを見て自分なりに横スクロールゲームを作ろうとしてるんですが、思った以上に大変で、苦戦してる次第です。
【追記 2016.07.15】
なんとか完成しました。しかしステージを考えるのに苦労しましたよ。僕には10ステージが限界でした。。一応、作ったゲームについてと、その作り方のリンクを貼っておきます。
【自作アプリ第8弾】泳げおっさん - ホーリーのプログラミング日記
【超初心者向け】Swiftで作る横スクロールアクションゲーム - ホーリーのプログラミング日記
泳げおっさん
仮のタイトルは「泳げおっさん」にしました。あくまでも仮なんですが、十中八九これで決まる気がしてます。これ以上考えるのも面倒なんでw
んで、ゲームの概要なんですが、これは水中を泳ぎながらステージをクリアしていくゲームです。
今は教科書の素材を借りて、とりあえずプログラムから作ってるんですが、まあこんな感じですね。エビフライくんが泳いでて、そこに敵やサンゴが出てくると。んで敵に当たったら死亡です。
途中でスターコイン(仮名称)が出てくるんですが、これを取ると、そのステージを完全クリアしたことになります。もちろん取らなくてもクリアはクリアです。普通のクリア。
操作方法
画面が自動的に横にスクロールしていくので、自分はタップするだけです。
タップするたびに上昇して、何も押さないと下降するっていう、ただそれだけですね。
QBKで物理エンジンの基本を学んでたんで、この辺のコードは問題なく実装出来ました。
ステージを考えるのがめっちゃムズい
教科書だと、ただランダムにサンゴが発生して、その間を通って行くゲームなんですよ。こんな感じの。
サンゴとサンゴの間を通って行くってことですね。それで上下のサンゴの伸び幅が毎回変わるんで、ようは通り道の場所が変わるんです。
確かにこの仕様なら簡単なんですけど、僕はマリオみたいにしたかったんですよ。敵キャラがいてコインを取ってみたいな。
だからそういう風に作ろうと思ったんですけど、これが大変。敵キャラの位置とかサンゴ(本番では土管になる予定)の位置を、全部自分で決めなきゃいけないですからね。
全部で10ステージ作ろうと思ってるんですけど、早くも3ステージ目でつまづいてますw
各ステージのテストがめっちゃ大変
ステージを考えるのも大変なんですが、そのテストをするのも大変なんですよね。
敵の位置がちょっと違うな、もう100px右だなとか。スターコインが簡単に取れちゃうな。もうちょっと手前にサンゴをを追加して、敵も走らせようとか。まあこういうことで消耗しています。
ステージごとに動きであったり難易度の調整をしながらテストするので、それがやっぱ大変ですね。
最後に
初めて手を出した横スクロールアクションなんですが、思いのほか難しくて、苦戦しています。まあコードではなくてステージの構想ですね。そういうところが難しいです。
とりあえず10ステージ出来たら、今のエビフライの絵を溺れそうなおっさんに変えたりして、それでリリースしようと思います。
【関連記事】