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

前回(第11回)に続き、今回は…
それでは、 前回は使用するマップを作ったので、 今回、 今回のまず手始めは 初期設定は前回でも解説したが、 ① PCが移動中は値を1にする。詳しい説明はPC移動の解説時に行う マップ移動データについて、 それでは、 今回のゲームでは、
Ⅰ-② マップ移動データを作る!
(1)
//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; ―④
② 「md」
0はそのマスへ移動可
1は進入不可
2は進入不可+回避移動を行う
3は進入不可+2と別方向へ回避移動を行う
③ マップ移動データの1行の数=マップの横幅分。このデータの用い方は、
④ マップ移動データ上、Ⅰ-③ PC移動+マップスクロールを作る!
(1)キー入力によるPCとマップ移動処理の流れ
プレイヤーから移動キー

…以上、
では、
(2)ボタンに記述したボタンアクションの解説
前のフローに記したように、
//8キー(↓へ移動)が入力された場合
on (keyPress "8") { ┓
if (ido_wait == 1) { |
} else { |
tellTarget ("pc") { |
gotoAndPlay ("F"); |
} |
} |
} ┛①
//2キー(↑へ移動)が入力された場合
on (keyPress "2") { ┓
if (ido_wait == 1) { |
} else { |
tellTarget ("pc") { |
gotoAndPlay ("B"); |
} |
} |
} ┛②
・
・
・
4キーと6キーの処理は省略
① 8キーが入力されると、 ② 2キーが入力された場合も同様に処理している。もちろん、
「ido_
(3)PCクリップ内解説
次に、

(4)タイムライン解説・正面向き「F」の場合
PCの各向きでの処理は、

【スクリプト①】の解説
8キーが入力されて
そしてこれが実際のスクリプト。
//PCの移動ウエイトを1(移動中)にする
../:ido_wait = 1;
//PCの現在位置から移動先の値をチェック
ido_next = substring (../:md, ../:pc_md + ../:md_xmax, 1);
//チェック結果による分岐
if (ido_next == 0) { ┓
../:pc_posi = 1; |
../:pc_md += ../:md_xmax;|
gotoAndPlay ("Fido"); ┛解説①A参照
} else if (ido_next == 1) { ┓
../:pc_posi = 1; |
gotoAndStop ("Fstp"); ┛解説①B参照
} else if (ido_next == 2) { ┓
if (../:pc_posi == 1) { |
gotoAndPlay ("L"); |
} else { |
../:pc_posi = 1; |
gotoAndStop ("Fstp"); |
} ┛解説①C参照
} else if (ido_next == 3) { ┓
if (../:pc_posi == 1) { |
gotoAndPlay ("R"); |
} else { |
../:pc_posi = 1; |
gotoAndStop ("Fstp"); |
} |
} ┛解説①D参照
- 〔解説①A〕
値が
「0」 の場合。 PCの向きフラグの値を1
(↓向き) にし、 マップ移動データ上のPC位置を一歩下へ移動した位置 (移動前の位置+マップ移動データ1行数) に変更する (ex参照)。そして、 実際に一歩下へ移動させるため 「Fido」 フレームへgotoする。 - 〔解説①B〕
値が
「1」 の場合。 移動先に障害物があり進入できないので、
PCの向きフラグの値を1にするのみ。終了処理を行うため 「Fstp」 フレームへgotoする。 - 〔解説①C〕
値が
「2」 の場合。この場合は、 移動先に障害物があり進入できない+左方向へ回避移動なので、 ここではその処理を行っている。 まず初めに、
PCがすでに正面 (↓方向) を向いているかPCの向きフラグの値をチェックし、 その値が1なら、 左方向への回避移動を行うため 「L」 フレームへgotoする。しかし1以外なら、 PCが正面以外を向いている時に8キーを入力されているので、 PCが正面を向くのみで終了する。PCの向きフラグの値を1にする。そして終了処理を行うため 「Fstp」 フレームへgotoする。 - 〔解説①D〕
値が
「3」 の場合。 基本的な処理内容は〔解説①C〕と同様で、
右方向への回避移動となり、 goto先は 「R」 になる。
(ex)
【スクリプト②】の解説
ここでは、
【スクリプト③】の解説
移動終了となり、
(5)そしてPCは移動し、マップの端でSTOP!
移動キーが入力され、
…ということで、
次回まで、
マップ移動データで進入可不可の設定
それでは、
