スポンサーサイト

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

ジャンプの実装

スーパーマリオといえば、やはりジャンプですよね。
画面をタッチするとマリオが「ぷう~ん」っとジャンプします!

前回まで画面左下にあったジャンプボタンを取り除き、こうげきボタン以外の好きな箇所でジャンプ操作をできるようにします。
こうすることで両手での操作はもちろん、片手でも操作できるように配慮しました。

Screenshot_2014-03-06-13-15-34.png

さて、マリオがジャンプするか否かは、主にTouchEventとboolean型の変数で判断しています。
まず最初にboolean型の変数を2つ("ダッシュフラグ"と"上昇移動フラグ")用意し、TouchEventの中にそれぞれ記述していきます。
※ダッシュフラグはtrueならマリオが地面に触れている、falseならマリオが浮いているかを判断し、
上昇移動フラグはtrueマリオが上へ上昇、falseなら下へ下降を判断する。

AndEngineのTouchEventにはACTION_DOWNというものがあり、こちらの引数は主に端末の画面をタッチしている間戻り値の値を返します。
この場合、先ほど宣言した上昇移動フラグをtrueにする。
もう一つはACTION_DOWNとは逆で画面のタッチを解除した場合に呼ばれる引数で、ACTION_UPというものがあります。
こちらの引数が呼ばれた場合は、上昇移動フラグfalseにします。

それでは、この2つの仕組みがわかったところでジャンプ処理のコードを見てみましょう!

IMG_20140306_141435.jpg

画面をタッチし、上昇移動フラグがtrueになると一番上の"if (上昇移動フラグ == true)"の中身が実行されます。
ここでマリオ(marios.playerMarioNormal)のY軸をマイナス(-)にセットすることで上へと移動するわけですが、単にデクリメントするのではなくアスタリスクイコール(*=)を指定し、移動の幅を徐々に緩めていくことでマリオがちょーきれいな放物線を描いて跳んでくれるようになります。

タッチを解除すると今度は真ん中辺りにある"else if (ダッシュフラグ == false)"が呼び出されます。
こちらは逆にマリオのY軸をプラス(+)にセットしているので、下のほうへと落下するわけですね。

これで終わりではありませんよ!最後に一番下のif分に注目してください。
ここではタッチを解除しなくても一定の高さ(ブロック5つ分の高さ)を満たしたら強制的に落下するようにもなっています。
これを書き忘れるとマリオがずーーーっと浮いたままになってしまうので、このようにACTION_DOWNが呼ばれなくてもマリオが落下するようなコードも忘れずに記述しないといけないということですね。
スポンサーサイト

コメント

非公開コメント

プロフィール

岡本 賢治

Author:岡本 賢治
 
☆☆☆☆☆☆☆☆☆☆☆☆
 
Android専用アクションゲーム
「スーパーけんじラン」好評配信中!
 
↓↓↓↓↓↓↓↓↓↓↓↓

 
・公式サイトはこちらから
http://okamotodo.jimdo.com/

最新トラックバック

アクセスカウンター

オンラインカウンター

現在の閲覧者数:

検索フォーム

ブロとも申請フォーム

QRコード

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