|
Flash防衛ゲーム作成は今回で第五回目となり、前回同様に途中経過のサンプルも掲載する。 前回まではマップをクリックすると障害物が設置され、スタート地点からゴール地点までの最短ルートが表示されるようになった。 今回はその最短ルートに沿ってキャラクターを移動させる。 キャラ(Flashではシンボル、インスタンスという)を動かすには、キャラのX座標・Y座標の数値を変動させるだけでよい。 例えば、右に少しずつ進むようにするには、キャラが配置されているX座標を+1ずつすればいい。 このようにFlash内でのキャラ移動は簡単なため、アニメーション、プロモ利用等と幅広く利用されている。 さて、前回で最短ルートを導いている。 その最短ルートは[0][0],[0][1],[1][1]といったように配置したマップの二次元配列を利用してどの要素をたどったかという情報を保持している。 ここでルートに沿わすには、1マスずつ到達目標座標を設定してそこまで移動させると手法を取る。 例えば、一辺が20pxの正方形マスを5×5の正方形状に配置するとする。 左上がスタートで右下をゴールとすると、描く最短ルートは以下のようになる。 [0][0],[0][1],[0][2],[0][3],[0][4],[1][4],[2][4],[3][4],[4][4] 二次元配列なので[a][b]という形式で表されるが、移動するたびに[a]、[b]どちらかが必ず+1されている。 次にこのルートを目標座標に置き換える。 1マスの1辺は20pxだ。 (0,0),(0,20),(0,40),(0,60),(0,80),(20,80),(40,80),(60,80),(80,80) この座標を通過すればルートに沿って動くことになる。 あとは各座標を目標点とし、"目標点に達していない場合は目標点目指して移動"というプログラムを組んでやれば設置したキャラは移動を開始する。 サンプルではクリックすると障害物を設置できる。 しかし、どこかでキャラ移動を開始させないといけないので"Start"ボタンを設けている。 "Start"を押すとキャラが最短ルートに沿って移動するが、途中で経路を変えられたくないのでゴール地点に到着するためクリック等を禁止するようにしている。 ゴール地点に到着すると"Failed(失敗)"と表示されるが、このゲームの仕様が敵キャラがゴールしないように防衛するのが目的なので、ゴールされると"失敗"と出るようにしている。 ![]() ->サンプル 次回は設置した障害物に攻撃機能を持たすことにする。 |
| << 前記事(2007/10/15) | トップへ | 後記事(2007/10/17)>> |
| タイトル (本文) | ブログ名/日時 |
|---|
| 内 容 | ニックネーム/日時 |
|---|
| << 前記事(2007/10/15) | トップへ | 後記事(2007/10/17)>> |