PC移動とマップスクロールの基本を作成

前回(第11回)に続き,今回は…
それでは,前回の「基本レクチャーⅠ マップ移動の基本を作る!」の続きをレクチャーしていこう。
前回は使用するマップを作ったので,今回は,そのマップのスクロールやマップ上を移動するPCを作成し,さらには障害物との判定も行っていく。
今回,使用するflaは,前回の「MapAdv_1」からマップスクロールやPCの移動処理を入れた「MapAdv_2」となり,そのflaを用いて進めていく。
- 実際のflaファイルMapAdv_2.fla(Flash CS3用のもの,Flash 8用のもの)
Ⅰ-② マップ移動データを作る!
今回のまず手始めは「マップ移動データ」を作成する。このデータは,マップスクロールやPCの移動に必要となるもので,PCが一歩先へ移動可能かどうか,障害物があるなら回避移動するかどうかの判定に用いる(注1)。
- 注1)
- 今回,マップ移動データを作成し,それを用いてマップスクロールやPC移動の制御を行うが,これは一つの方法であり,別の方法でも作れる(マップやPCの座標を参照して移動可能か判定するなど)。今回は,視覚的に解り易い&処理負荷の軽減といった理由でマップ移動データを作成して用いることにした。
(1)初期設定にマップ移動データを記述する
初期設定は前回でも解説したが,新たに追加した「マップ移動データ」関連と「PCの移動ウエイトフラグ」以外は前回と同じなので,ここでは,ポイントである「マップ移動データ」関連と「PCの移動ウエイトフラグ」のみ取り上げて解説する。
初期設定に追加したフラグとデータ
//PCの移動ウエイトフラグ
ido_wait = 0; ―①
//マップ移動データ
md = "111111111111111111111" ┓
add"100000000000000000001" |
add"100000000000021300001" |
add"100000000000031200001" |
add"100000000000000000001" |
add"100000000000000000001" |
add"100000000000000000001" |
add"100000000000000000001" |
add"100000000000000000001" |
add"100000000000000000001" |
add"100000000000213000001" |
add"102130000000312000001" |
add"103120000000002130001" |
add"100000000002133120001" |
add"100000000003120000001" |
add"100000000000000000001" |
add"100000000000000000001" |
add"100000000000000000001" |
add"100000000000000000001" |
add"111111111111111111111";┛②
//マップデータ1行数
md_xmax = 21; ―③
//PCのマップデータ上の位置
pc_md = 156; ―④
① PCが移動中は値を1にする。詳しい説明はPC移動の解説時に行う
② 「md」という変数を用意し,値をデータとして使用。各数値の意味は…
0はそのマスへ移動可
1は進入不可
2は進入不可+回避移動を行う
3は進入不可+2と別方向へ回避移動を行う
③ マップ移動データの1行の数=マップの横幅分。このデータの用い方は,PC移動の解説を参照
④ マップ移動データ上,ゲーム開始時のPCの位置。このデータの用い方は,PC移動の解説を参照
マップ移動データについて,上記した数値の羅列だけではイメージ難しいと思うので,実際に使用するマップ絵にこれらのデータを並べてみた。次のFla画面1をご覧になれば,これら数値の意味がわかると思う。
それでは,このマップ移動データを用いつつ,マップスクロールやPC移動を作成,レクチャーを進めていく。
Ⅰ-③ PC移動+マップスクロールを作る!
今回のゲームでは,PCの移動処理内でマップのスクロールも行っている。従って,PCの作成と移動処理の解説を進めながらマップスクロールの解説も行っていく。
PCの移動については,次のフローのように,プレイヤーからのキー入力を受け,ボタン→PCクリップへ処理展開する。(1)キー入力によるPCとマップ移動処理の流れ
プレイヤーから移動キー(2,8,4,6)の入力があると,次の手順でPC移動とマップをスクロールさせている。ここでは,8キー(正面向き,↓方向へ移動)を例に紹介する。
…以上,ざっとこの流れでPC移動とマップのスクロールが実行される(注2)。
では,全体の流れが掴めたところで,ボタンとPCクリップ内の解説へ移っていく。
- 注2)
- 今回の「MapAdv_2」では,PCが一歩進む=マップを逆方向に一歩分(16pixel)スクロールさせるという単純な作りだが,次の「GameMapAdv」レクチャーでは,もっと凝ったスクロール制御を行っていく。

