Flash/ActionScript

.hitTestを使った迷路ゲームにチャレンジ!

ゲーム作成では良く使用されるActionScript「.hitTest」を使用して迷路ゲームを作成します。難易度が高いゲームですが、作成は簡単です!

執筆者:渡辺 大介

今回は.hitTestを使用して迷路ゲームを作成します。使用しているActionScriptはどれも簡単なものだけですのでチャレンジしてみましょう。
.hitTestを壁に記述した迷路。
(.flaファイルはページの最後でダウンロードできます)

.hitTestとは?

ゲームをプレイする方なら一度は聞いたことがある言葉に「当り判定」というものがあると思います。今回ご説明する「.hitTest」は、ムービークリップとムービークリップが重なったときを取得するものです。
今回はプレーヤーである赤い丸をドラッグしながら移動して、当り判定のある壁を避けながらゴールまでたどり着くとゲームクリアという流れで作成していきます。

プレーヤーをドラッグしてゴールエリアに移動させる

1. ゲーム作成に使用するパーツをダウンロードしてください。.flaファイルをダウンロード

フレームを確認する
2. まず2フレーム目を確認してください。黒い四角(迷路の壁)、赤い丸(プレーヤー)、START(スタートエリア)、GOAL(ゴールエリア)と計4つのムービークリップが配置されています。
また、「gameover」、「goal」というラベルがついたフレームがあります。この画面はそれぞれゲームオーバー画面、ゴール画面に対応しています。

インスタンス名をつける
3. プレーヤーを選択し、プロパティを確認します。図の位置に「player」と名前がついていますね。これはActionScript上で扱えるインスタンス名です。

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」ラベルまで移動してしまいます。

ムービープレビューを行い確認しましょう。
プレーヤーをドラッグして、ゴールエリアに移動させると画面は移動しましたか?


次のページでは迷路を作成し、ゲームを完成させます。
  • 1
  • 2
  • 次のページへ

あわせて読みたい

あなたにオススメ

    表示について

    カテゴリー一覧

    All Aboutサービス・メディア

    All About公式SNS
    日々の生活や仕事を楽しむための情報を毎日お届けします。
    公式SNS一覧
    © All About, Inc. All rights reserved. 掲載の記事・写真・イラストなど、すべてのコンテンツの無断複写・転載・公衆送信等を禁じます