さてみなさん。
今回は、ここまで検討した内容をツクールMV上に実装していく工程になります。
(今回が最終回です)
▼実装(1)マップ
↑
こんな感じで、設計時に検討した通りに、マップイベントで埋めています。
また、次に移動する方向に合わせて、リージョンを設定しています。
マップイベントの無い左上のマス(リージョン1を設定している所)が、スタート地点です。
商人風のお姉さんは、ショップイベントです。
マスに止まった時に、話しかける(任意)事で、買い物が出来ます。
↑マップイベントも設計通りに作成します。
ポイントは、サイコロを振る(移動する)かどうかの確認を行うコモンイベントを呼ぶ事と、プライオリティをプレイヤーと同じにして、トリガーを接触にする事です。
▼実装(2)変数
↑今回の「すごろくシステム」で使うために用意した変数です。
それぞれについて、以下に説明します。
■[Move Counter]
サイコロ1回分の移動する歩数を管理します。
ここに既に1以上の値が入っている場合、サイコロを振らずに、その値の分だけ移動します。
■[Next Way]
次の1歩の方向を示します。
リージョンIDと対応させる事として、1~5を使用します。
■[This X]
■[This Y]
プレイヤーが居るマスの座標を取得します。
そのマスのリージョンIDを取得するために使います。
■[This Map ID]
■[Map Move Counter]
プレイヤーが居るマップIDを設定し、そのマップ内での総歩数を管理します。
それぞれのマップで、止まったマスのイベントを起こすために使います。
■[Dice Counter]
サイコロを振る時の、サイコロの追加個数です。
通常はゼロでサイコロを1個振り、1だと+1個振ります(つまり2個振る)。
▼実装(3)コモンイベント
以下は作成したコモンイベント(一部省略)です。
設計通りに作ってあるはずなので、説明は省略します。
これで、「すごろくシステム」のテスト用の実装は終わりです。
あとは、動作確認をして、想定通りの動きをすればOKです。
それでは~。
「◆Move」
移動用コモンイベント
------------------------------------------------------------
◆注釈:Set [Move Counter] before this.
◆移動ルートの設定:プレイヤー (飛ばす, ウェイト)
: :◇すり抜けON
: :◇移動速度:5
◆ループ
◆変数の操作:#0043 [This X] = プレイヤーのマップX
◆変数の操作:#0044 [This Y] = プレイヤーのマップY
◆指定位置の情報取得:[Next Way], リージョンID, ({[This X]},{[This Y]})
◆条件分岐:[Next Way] = 1
◆移動ルートの設定:プレイヤー (飛ばす, ウェイト)
: :◇下に移動
◆
:分岐終了
◆条件分岐:[Next Way] = 2
◆移動ルートの設定:プレイヤー (飛ばす, ウェイト)
: :◇左に移動
◆
:分岐終了
◆条件分岐:[Next Way] = 3
◆移動ルートの設定:プレイヤー (飛ばす, ウェイト)
: :◇右に移動
◆
:分岐終了
◆条件分岐:[Next Way] = 4
◆移動ルートの設定:プレイヤー (飛ばす, ウェイト)
: :◇上に移動
◆
:分岐終了
◆条件分岐:[Next Way] ≥ 5
◆変数の操作:#0041 [Move Counter] = 0
◆ループの中断
◆
:分岐終了
◆変数の操作:#0046 [Map Move Counter] += 1
◆変数の操作:#0041 [Move Counter] -= 1
◆条件分岐:[Move Counter] ≤ 0
◆ループの中断
◆
:分岐終了
◆
:以上繰り返し
◆移動ルートの設定:プレイヤー (飛ばす, ウェイト)
: :◇すり抜けOFF
: :◇移動速度:4
◆コモンイベント:◆Stop Event
------------------------------------------------------------
「◆Check Move」
移動確認コモンイベント(マップイベントで呼び出す)
------------------------------------------------------------
◆文章:なし, ウィンドウ, 上
: :Would you move ?
◆選択肢の表示:Yes, (No) (ウィンドウ, 中, #2, #2)
:Yesのとき
◆条件分岐:[Move Counter] ≤ 0
◆変数の操作:#0041 [Move Counter] = 0
◆ループ
◆変数の操作:#0041 [Move Counter] += 乱数 1..6
◆条件分岐:[Dice Counter] ≤ 0
◆ループの中断
◆
:分岐終了
◆変数の操作:#0047 [Dice Counter] -= 1
◆
:以上繰り返し
◆
:分岐終了
◆文章:なし, ウィンドウ, 上
: :Move \V[41] step !!
◆コモンイベント:◆Move
◆
:(No)のとき
◆
:分岐終了
------------------------------------------------------------
「◆Stop Event」
止まったマスでイベントを起こすコモンイベント(1)
------------------------------------------------------------
◆変数の操作:#0045 [This Map ID] = マップID
◆条件分岐:[This Map ID] = 6
◆コモンイベント:◆Event 6 Test Map
◆
:分岐終了
------------------------------------------------------------
「◆Event 6 Test Map」
止まったマスでイベントを起こすコモンイベント(2)
------------------------------------------------------------
◆条件分岐:[Map Move Counter] = 1
◆文章:なし, ウィンドウ, 上
: :Get Gold 1000 !!
: :And next dice plus 2 !!
◆所持金の増減:+ 1000
◆変数の操作:#0047 [Dice Counter] = 2
◆
:分岐終了
◆条件分岐:[Map Move Counter] = 8
◆文章:なし, ウィンドウ, 上
: :Next Step is 6 !!
◆変数の操作:#0041 [Move Counter] = 6
◆
:分岐終了
◆条件分岐:[Map Move Counter] = 14
◆戦闘の処理:Sample
:勝ったとき
◆
:逃げたとき
◆
:負けたとき
◆
:分岐終了
◆
:分岐終了
◆条件分岐:[Map Move Counter] ≥ 22
◆文章:なし, ウィンドウ, 上
: :Sugoroku goal !!
◆場所移動:STAR_LAND (8,9) (向き: 下)
◆
:分岐終了
------------------------------------------------------------