スポンサーサイト

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

マリオのY座標を固定する

以前行った当たり判定"下"の実装で少しだけやり残したことがあったので解説を追加します。

Screenshot_2014-04-05-18-29-52.png

当たり判定シリーズを閲覧くださった方ならお分かりかと思うのですが、矢印先の青いラインとブロックがぶつかったら「ダッシュフラグをtrue」にし、マリオのY座標移動をストップさせます。
これが前回までの段階で、今回はきっちりと1ブロックごとに"高さを固定化"するコードを追加したいと思います。

Screenshot_2014-04-05-18-50-25.png

なぜそれをするのかというと、マリオのY座標移動をストップさせるだけではマリオが高いところから落ちると上図のように若干ブロックにめり込むことがあるのです。
青いラインは常にマリオを尾行するようにしているのですがマリオのスピードが速いとラインのスピードが追いつきません。
マリオが地面に着地してもまだラインはブロックと接触していないので、結果マリオが若干ブロックにめり込んでしまうのです。非常に困りものですよね;

というわけで追加したコードを見てみましょう。

IMG_20140405_202132.jpg

ここではif文でブロックに少しめり込んだ場合、決まった位置に固定化されるように記述しています。

マリオが着地する高さは決まっており、それぞれ「384」、「352」、「320」、「288」、…などの「32の値」で割れるように調整しています。これはちょうどブロック1つ分の高さですね。
少しキッチリと固定しすぎな気もしますが、このゲームではブロックなどのオブジェクト(タイル)の出現位置は32*32の大きさで固定されているのでこれで問題ありません。

さっそく上図のコードを実行してみました。

Screenshot_2014-04-05-20-31-04.png

しっかりと(マリオの高さも含めて)4ブロック分の高さで固定されているのが分かりますよね。
マリオの大きさと、ラインの長さが違うのは気にしないでください。

次回の記事ではすり抜け床についても解説します。
スポンサーサイト

コメント

非公開コメント

プロフィール

岡本 賢治

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

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

最新トラックバック

アクセスカウンター

オンラインカウンター

現在の閲覧者数:

検索フォーム

ブロとも申請フォーム

QRコード

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