スポンサーサイト

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

当たり判定"右"の実装

ついにマリオがタイルにあたるようになりました!
今回はマリオが横からドカンに触れると画面外へとスクロールします。

Screenshot_2014-03-07-06-17-22.png

↓↓↓↓↓↓↓↓↓↓

Screenshot_2014-03-07-06-17-34.png

方法はいたってシンプルで、マリオがタイルに触れた場合タイルのスクロール値と同じ値を指定してやるだけです。
コードはこんな感じ…。
marios.playerMarioNormal.setX(marios.playerMarioNormal.getX() - タイルのスクロール値);

marios.playerMarioNormal変数はマリオを描画する「スプライト系」の変数。
AndEngineには変数の型にSpriteというものがあり、attachChildで画像を表示させたり、
setPositionで簡単に画像を指定の位置にセットすることができ実に便利です。

※ちなみにマリオは正確にはアニメスプライト(AnimatedSprite)で、これはスプライトにコマ送りでアニメーションをつけたいときに使う。普通のスプライトにはできないアニメーションでキャラクターを描画することができるので、動かしたいスプライトがある場合はこちらを使おう!画面表示や指定座標へのセットなど基本的な使い方は普通のスプライトと同じです。

上記のコード(marios.playerMarioNormal.setX(marios.playerMarioNormal.getX() - タイルのスクロール値);をハンドラーの中に記述し、マリオがタイルに触れた場合、setXメソッドで左に少しずつずらしていきます。

…が、ここで気をつけなければ行けないことがあり、実際に当たったかの判定を感知するのはマリオではなく、
接触したか否かを判断するだけのスプライトが必要になってきます。

Screenshot_2014-03-07-07-53-15.png

赤い矢印の先にマリオと重なって緑色の四角が見えましたでしょうか?
これこそが横からの接触判定を専門としたスプライトです。
この接触判定のスプライトをマリオの座標と重なるようにセットすることで、マリオが画面外へ移動しても永遠と追いかけ続けます。

その他、地面の接触判定スプライト(下)と、マリオの頭部分が触れたかを判断するスプライト(上)も追加しないといけないわけなんですが、こうやって考えると結構めんどくさいですよね;
でも、もしも手を抜いて接触判定をマリオ単体で持たせてしまうと、
横からあたった場合はよいのですがドカンの上に飛び乗った場合、ベルトコンベアーのように左へと流されていってしまうのです;
スポンサーサイト

コメント

管理人のみ閲覧できます

このコメントは管理人のみ閲覧できます
非公開コメント

プロフィール

岡本 賢治

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

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

最新トラックバック

アクセスカウンター

オンラインカウンター

現在の閲覧者数:

検索フォーム

ブロとも申請フォーム

QRコード

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