スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

【アプリ】Androidのゲームを作ってみるpart1

4月3日からProcessingなる言語?を勉強始めました。
今から3日前ですね。

んで、「遊んで作るスマホゲームプログラミング」という本を買ったのですが、初日に見て以来ほぼ使っていません(笑)
いい参考書だとは思うのですが、初めてプログラミングする人じゃなければ不要かもしれないですね。

RPGやらアクションのゲームアルゴリズムが載っているわけでもありませんでした。パラパラと目を通した感じでは分かりやすそうな感じなのでおすすめです。

とりあえずここ3日間の成果を。
まず
【初日】
CBsMEDGVIAAUe_I.jpg
左下のボタンを押すと左へ。その隣のボタンを押すと右へボールが移動するだけのプログラムを作成しました。

CBuUfrbUMAAA9yO.jpg
その後は一番右下にあるボタンを押すとボールが跳ねるように『ジャンプボタンの追加』。
そしてAndroid上で動かせるように改良しました。

しかし、ボタンを押す判定をmouseX, mouseYというマウスカーソルの座標から取得していたため2箇所以上のタップが認識されない問題が発生。ちょっと悩んだけどJavaのandroid motionEventをインポートすることで対応。2箇所以上のタップに対応させたのが下の画像です。
CBvD8PnUMAAPew4.jpg
初日の作成はここまで。


※すっごく長い記事なので続きを読む方は↓をクリック。



【2日目】
横スクロールゲームや、RPGだと『マップチップ』と呼ばれるものでフィールドを作成するらしいです。
簡単に言うと2次元配列の中に0やら1やら入れて、0の場所は移動できる的な…。
CByZqrSVIAAh8Pa.jpg
ただ、今回が人生初のゲームプログラミングなので『マップチップ』の原理が全く分かりません。
調べてもいいのですが、まずは自分で考えなきゃと思いとりあえず配列の1が格納されている場所にブロックを配置する関数を作成しました。
CByZqhUUgAEulnA.jpg
このブロックには当たり判定がありません。
本当にただ描画しただけです(汗
この日はここまでで終了。

【3日目】
前回のブロックに対して当たり判定をつけます。
やり方はいろいろ悩んだのですが、ボールの現在位置をチップサイズで割って、その数値を切捨てすれば二次元配列の座標になるのではと思いその方法で。
CB0qAafUkAA0MnA.jpg
これが成功だったようで、ジャンプ時にブロックへ頭をぶつけることが出来ました!
上に乗ることも横にぶつかることも可能に!!
CB03Eb1VEAIxI-S.jpg
CB03EonVIAAx9y7.jpg

見栄えを良くする為にステージを構成するチップ数を増やしてみる。
なかなかいい感じになったんじゃなかろうか?
CB1aa3nUIAEBfWA.jpg

ここまで来るとちょっとゲームっぽくなったなと思えてくる。
「そうだ!ドット絵に差し替えたらどうだろうか?」
CB2PQbpVIAAg7Jc.jpg
うむ悪くはないぞ。
でもせっかくだから画像を動かしたい!
ゲーム内のdraw()関数の中にint型のframeという変数を置いて、1秒間に0~60になるようにしよう。
このframeの変化に応じて画像を切り替えてアニメーションをつけるのはどうだろうか?
ついでにドット絵も改善しよう。
CB4zpbYUAAAvvFS.jpg
CB6T_gSUkAAodPO.jpg
モーションは次の4種類。
待機:30フレームごとに切り替え。
走る:10フレームごとに切り替え。
飛ぶ(上昇):5フレームごとに切り替え。必死に翼をバタバタさせる。
飛ぶ(下降):10フレームごとに切り替え。汗をかきながら翼をゆっくりバタバタさせる。

割と悪くない。いろいろやったが3日目はここまで。

【本日(4月7日)】
せっかくなので3つのボタンのドットを作成することにする。
CB9Cx_SUgAAlrXv.jpg
どうだろうか。
レトロ風な感じのボタンを実装した。
さて、1つ問題がある。
それはAndroidの解像度は統一されていないということだ。
このゲームは縦横比が4:6となっている。そのため私の端末では右側にゲーム内では使用できないスペースが出来ている。(大きなドット絵になっている部分)
これを目立たなくしたい。
CB-jpG3UIAIwU6z.jpg
結構これには悩まされたが、「背景を黒にしちゃえばいいじゃん!」っていう単純な解に収束した。
ついでにステージギミック『針』の追加。

今回はこんな感じである。
やることないからか、いろいろなプログラム言語に手を出していたからか、自分でもびっくりするほど思い通りのプログラミングが出来た。

暫らくはこのゲーム作成をメインにしたいと思う。

※次回更新はある程度開発が進んだら。
以上!
CB-jpkeUgAEBd3C.jpg
スポンサーサイト

コメント

コメントの投稿


管理者にだけ表示を許可する

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。