.hitTestを壁に記述した迷路。 (.flaファイルはページの最後でダウンロードできます) |
.hitTestとは?
ゲームをプレイする方なら一度は聞いたことがある言葉に「当り判定」というものがあると思います。今回ご説明する「.hitTest」は、ムービークリップとムービークリップが重なったときを取得するものです。今回はプレーヤーである赤い丸をドラッグしながら移動して、当り判定のある壁を避けながらゴールまでたどり着くとゲームクリアという流れで作成していきます。
プレーヤーをドラッグしてゴールエリアに移動させる
1. ゲーム作成に使用するパーツをダウンロードしてください。.flaファイルをダウンロード。また、「gameover」、「goal」というラベルがついたフレームがあります。この画面はそれぞれゲームオーバー画面、ゴール画面に対応しています。
4. プレーヤーをドラッグ&ドロップできるようにします。プレーヤーを右クリックしてアクションを選び、以下のActionScriptを記述してください。
on(press){ this.startDrag(true); } on(release){ this.stopDrag(); }これは以前にも登場しましたね。
5. 次にゴールにプレーヤーが触れたとき、フレームを移動させるActionScriptを記述します。
ゴールエリアを右クリックし以下のActionScriptを記述してください。
onClipEvent (enterFrame) { if (this.hitTest(_root.player)){ _root.gotoAndStop("goal"); } }少し長いので、一行ずつに区切って説明していきます。
onClipEvent (enterFrame) {}enterFrameというのはタイムラインが進む度に{}内の処理を実行するという意味になります。
if (this.hitTest(_root.player)){}以前にも登場した「if文」をここでも使用します。this(ゴールエリア)に( )内(今回はプレーヤー)が.hitTest(触れたとき)に{ }内の処理を実行する。という意味になります
_root.gotoAndStop("goal");これは良く出るgotoAndStopですが、はじめに「_root.」と付いています。ムービークリップはそれぞれタイムラインを持っているので、これを付けなければゴールエリアが「goal」ラベルまで移動してしまいます。
ムービープレビューを行い確認しましょう。
プレーヤーをドラッグして、ゴールエリアに移動させると画面は移動しましたか?
次のページでは迷路を作成し、ゲームを完成させます。