RPGツクール2000/システム
パズルゲーム『岩動』を作る
■リプレイ処理を追加
(更新:2009/03/21)


YADOTで紹介しているパズルゲーム『岩動』を作るにて、
最小移動回数でクリアした時のクリア手順を変数に記憶し、
リプレイとしてクリア手順が確認できるようにします。


このページは続きとなっているページです
パズルゲーム『岩動』を作るの基礎ページをご覧の上で
このページをご覧ください。
【パズルゲーム『岩動』を作るのページを開く】

この色の部分はパズルゲーム『岩動』を作るのページにあった部分です。



☆リプレイ処理の確認
岩動システムでリプレイ処理を作る場合、
岩を移動した時の岩のX座標Y座標移動方向の3種類の情報が必要になります。

この3種類の情報を1つ1つの変数に保存した場合、
50回分の岩の移動で150個の変数を使う事になります。

今回作成するリプレイ処理では、使用する変数の数を抑えるために、
X座標、Y座標、移動方向の3種類の情報を1つの変数にまとめて保存します。
具体的には、
X座標×10000Y座標×100移動方向(1〜4)1回の岩の移動
と言った計算式で、1回分の岩の移動情報を保存します。
なお、移動方向の数値は「下=1」「左=2」「右=3」「上=4」とします。

上記計算式で、X座標=4Y座標=2移動方向=下の場合、
リプレイとして保存される変数の値は「40201」になります。

ステージのマップサイズは、100×100マス以内にしてください。

1つの変数にまとめて保存しても、保存できる移動回数の上限を決めておかないと、
大量の変数を消費する事になります。
今回のステージ1では、20回までの岩の移動をリプレイとして保存できるようにします。
※リプレイの一時保存用の変数は、他のステージでも共有して使う事ができますので、
 変数の番号は50回分まで用意しています。


リプレイとして保存する情報は、岩の場所岩の移動方向だけなので、
プレイヤーが操作した動きまでは再現できません。
主人公の移動は、次に動かす岩までの最短距離で移動します。
ステージ内には、移動できないマスを設定しないようにしてください。



☆スイッチ・変数
スイッチと変数の番号使用内容の一覧表です。

スイッチ
番号 名前 使用内容
0001 クリア確認 岩を移動した後にON。クリアの有無を確認。
0007 リプレイ再生:実行 保存された情報を基にリプレイを再生します。
0008 リプレイ再生:キー押し リプレイ再生時にキーを押した時にON。
0009 リプレイ再生:再生終了 リプレイの再生が終わった時(ステージクリア時)にON。

変数
番号 名前 使用内容
0001 移動回数 岩の移動回数をカウントします。
0002 X座標 岩のX座標を設定する時に使用。
0003 Y座標 岩のY座標を設定する時に使用。
0004 ID 地形IDやイベントIDを読み取る時に使用。
0005 X座標± 変数0002番の値を変える時に使用。
0006 Y座標± 変数0003番の値を変える時に使用。
0007 キー入力 キー入力の処理で使用。
0008 記憶:移動回数 記憶を実行した時の移動回数を記憶。
 
0011 戻りマップID 入り口となったマップへ戻る時に使用。
0012 戻りX座標 入り口となったマップへ戻る時に使用。
0013 戻りY座標 入り口となったマップへ戻る時に使用。
 
0021 記録01 ステージ1の最小移動回数を保存します。
 
0041 記憶:岩01X 岩01のX座標を記憶。
0042 記憶:岩01Y 岩01のY座標を記憶。
 
0081 リプレイ記憶変数番号 リプレイの情報を一時保存する最初の変数番号を設定。
0082 リプレイ保存変数番号 記録更新時にリプレイの情報を保存する最初の変数番号を設定。
0083 リプレイ保存限界回数 保存できる移動回数を設定。
0084 リプレイX座標 X座標×10000の計算で使用。
0085 リプレイY座標 Y座標×100の計算で使用。
0086 リプレイXY向 X座標×10000+Y座標×100+向きの情報を設定。
0087 リプレイ変数番号 リプレイの情報を保存・呼出する時の変数の番号を設定。
0088 補助:リプレイ変数番号 リプレイ情報を記憶する変数番号を設定。
0089 補助:リプレイ移動回数 リプレイ情報を記憶する移動回数をカウント。
 
0091 再生:初期位置MAP リプレイを再生する前に初期位置(マップID)を設定。
0092 再生:初期位置X座標 リプレイを再生する前に初期位置(X座標)を設定。
0093 再生:初期位置Y座標 リプレイを再生する前に初期位置(Y座標)を設定。
0094 再生:1ページ イベントの呼び出しで1ページ目を呼び出す時に使用。
 
0101〜0150 リプレイの情報を一時保存する時に使用。
0151〜0200 助イベントの「記憶」でリプレイの情報を保存。
0201〜0220 ステージ1のリプレイの情報を保存。

リプレイ情報は、まず変数0101〜0150番の中に保存されます。
「1回の岩移動→変数0101番に保存」、
「2回の岩移動→変数0102番に保存」と言った感じです。

補助イベントの「記憶」を実行した時には、
変数0101〜0120番の情報を、変数0151〜0170番へコピーします。
逆に補助イベントの「呼出」を実行した時には、
変数0151〜0170番の情報を、変数0101〜0120番へコピーします。

ステージクリア時に、岩の移動回数の記録が更新された場合、
変数0101〜0120番の情報を、変数0201〜0220番へコピーします。

リプレイ再生時には、変数0201〜0220番の情報を使って、リプレイを再生します。



☆リプレイ情報を保存
コモンイベントにリプレイの情報を保存するイベントを設定してください。

■コモンイベント「リプレイ保存」
イベント開始条件:呼び出されたときのみ
◆条件分岐:変数[0001:移動回数]がV[0083]より大きい<保存できる移動回数を超えた時
 ◆イベント処理の中断
 ◆
:分岐終了
◆変数の操作:[0084:リプレイX座標]代入,主人公のX座標
◆変数の操作:[0085:リプレイY座標]代入,主人公のY座標
◆変数の操作:[0084:リプレイX座標]乗算,10000
◆変数の操作:[0085:リプレイY座標]乗算,100
◆変数の操作:[0086:リプレイXY向]加算,変数[0084]の値
◆変数の操作:[0086:リプレイXY向]加算,変数[0085]の値
◆変数の操作:[0087:リプレイ変数番号]代入,変数[0081]の値
◆変数の操作:[0087:リプレイ変数番号]加算,変数[0001]の値
◆変数の操作:[0087:リプレイ変数番号]減算,1
◆変数の操作:[V[0087]]代入,変数[0086]の値<リプレイの情報を保存



ステージの入り口となるマップにある階段イベントに、
リプレイの保存を始める変数番号の設定と、
リプレイの保存ができる岩の移動回数を設定してください。

■マップイベント「階段01」
イベント出現条件:なし
イベント開始条件:主人公が触れたとき(または[決定キーが押されたとき])
グラフィック:下り階段の絵
◆変数の操作:[0081:リプレイ記憶変数番号]代入,101<リプレイの情報の一時保存を始める変数番号
◆変数の操作:[0082:リプレイ保存変数番号]代入,201<ステージ1のリプレイを保存する変数番号
◆変数の操作:[0083:リプレイ保存限界回数]代入,20
<保存できる岩の移動回数
◆現在の場所を記憶:[0011],[0012],[0013]
◆条件分岐:変数[0021:記録01]が0
 ◆変数の操作:[0021:記録01]代入,999
 ◆
:分岐終了
◆文章:\>ステージ1に入りますか?
:  :\>\c[9]現在の移動回数:\c[4]\v[21]回\c[0]
◆選択肢の表示:\>入る/\>入らない
:[\>入る]の場合
 ◆画面の消去:場所移動の設定
 ◆キャラクターの動作指定:主人公,下を向く
 ◆指定動作の全実行
 ◆場所移動:ステージ01(005,004)
 ◆画面の表示:場所移動の設定
 ◆
:[\>入らない]の場合
 ◆
:分岐終了



岩イベントに、移動方向を設定する変数の設定と、
コモンイベントを呼び出すイベント設定を追加します。

■マップイベント「岩01」
イベント出現条件:なし
イベント開始条件:決定キーが押されたとき
グラフィック:岩の絵
移動速度:標準速
◆変数の操作:[0005〜0006]代入,0
◆選択肢の表示:\>上に移動/\>下に移動/\>左に移動/\>右に移動(キャンセル:独立)
:[\>上に移動]の場合
 ◆変数の操作:[0006:Y座標±]代入,-1
 ◆キャラクターの動作指定:このイベント,上を向く
 ◆変数の操作:[0086:リプレイXY向]代入,4
 ◆
:[\>下に移動]の場合
 ◆変数の操作:[0006:Y座標±]代入,1
 ◆キャラクターの動作指定:このイベント,下を向く
 ◆変数の操作:[0086:リプレイXY向]代入,1
 ◆
:[\>左に移動]の場合
 ◆変数の操作:[0005:X座標±]代入,-1
 ◆キャラクターの動作指定:このイベント,左を向く
 ◆変数の操作:[0086:リプレイXY向]代入,2
 ◆
:[\>右に移動]の場合
 ◆変数の操作:[0005:X座標±]代入,1
 ◆キャラクターの動作指定:このイベント,右を向く
 ◆変数の操作:[0086:リプレイXY向]代入,3
 ◆
:キャンセルの場合
 ◆イベント処理の中断
 ◆
:分岐終了
◆指定動作の全実行
◆スイッチの操作:[0001:クリア確認]をONにする
◆変数の操作:[0002:X座標]代入,このイベントのX座標
◆変数の操作:[0003:Y座標]代入,このイベントのY座標
◆注釈:------------------------------------------------------------
:  :1マス目の移動
:  : 

◆変数の操作:[0002:X座標]加算,変数[0005]の値
◆変数の操作:[0003:Y座標]加算,変数[0006]の値
◆指定位置の地形ID取得:(V[0002],V[0003]),[0004:ID]
◆条件分岐:変数[0004:ID]が2
 ◆イベント処理の中断
 ◆
:分岐終了
◆指定位置のイベントID取得:(V[0002],V[0003]),[0004:ID]
◆条件分岐:変数[0004:ID]が1以上
 ◆イベント処理の中断
 ◆
:分岐終了
◆キャラクターの動作指定:このイベント,一歩前進
◆指定動作の全実行
◆変数の操作:[0001:移動回数]加算,1
◆イベントの呼び出し:リプレイ保存<コモンイベントを呼び出す
◆注釈:------------------------------------------------------------
:  :2マス目の移動
:  : 

◆変数の操作:[0002:X座標]加算,変数[0005]の値
◆変数の操作:[0003:Y座標]加算,変数[0006]の値
◆指定位置の地形ID取得:(V[0002],V[0003]),[0004:ID]
◆条件分岐:変数[0004:ID]が2
 ◆イベント処理の中断
 ◆
:分岐終了
◆指定位置のイベントID取得:(V[0002],V[0003]),[0004:ID]
◆条件分岐:変数[0004:ID]が1以上
 ◆イベント処理の中断
 ◆
:分岐終了
◆キャラクターの動作指定:このイベント,一歩前進
◆指定動作の全実行
◆注釈:------------------------------------------------------------
:  :3マス目の移動
:  : 

◆指定位置の地形ID取得:(V[0002],V[0003]),[0004:ID]
◆条件分岐:変数[0004:ID]が2
 ◆イベント処理の中断
 ◆
:分岐終了
◆指定位置のイベントID取得:(V[0002],V[0003]),[0004:ID]
◆条件分岐:変数[0004:ID]が1以上
 ◆イベント処理の中断
 ◆
:分岐終了
◆キャラクターの動作指定:このイベント,一歩前進
◆指定動作の全実行

※まだリプレイ再生用のイベント設定がありますので、
 他の岩イベントへのコピー&貼り付けの設定は、あとで行ってください。



補助イベントを設定している場合、「記憶」や「呼出」を実行した時に、
リプレイの情報も「記憶」「呼出」になるように、イベント設定を追加します。

■マップイベント「補助イベント」
イベント出現条件:なし
イベント開始条件:定期的に並列処理する
グラフィック:透明
◆キー入力の処理:[0007:キー入力](Shift/オプション:ON)
◆効果音の演奏:決定1
◆文章:\>現在の移動回数:\v[1]回
◆選択肢の表示:\>記憶/\>呼出/\>やり直し/\>キャンセル(キャンセルの場合:選択肢4)
:[\>記憶]の場合
 ◆効果音の演奏:冷気7
 ◆画面のフラッシュ:(R00,G31,B31,V31),0.5秒
 ◆変数の操作:[0008:記憶:移動回数]代入,変数[0001]の値
 ◆変数の操作:[0041:記憶:岩01X]代入,岩01のX座標
 ◆変数の操作:[0042:記憶:岩01Y]代入,岩01のY座標
 ◆変数の操作:[0087:リプレイ変数番号]代入,変数[0081]の値
 ◆変数の操作:[0088:記憶:リプレイ変数番号]代入,151
 ◆変数の操作:[0089:記憶:リプレイ記憶回数]代入,1
 ◆ラベルの設定:2番
 ◆変数の操作:[V[0088]]代入,変数[V[0087]]の値<リプレイ情報をコピー
 ◆変数の操作:[0087〜0089]加算,1<次の変数番号、移動回数にする
 ◆条件分岐:変数[0089:記憶:記憶回数]がV[0083]以下<まだ記憶する変数がある時
  ◆指定ラベルへ飛ぶ:2番
  ◆
 :分岐終了

 ◆
:[\>呼出]の場合
 ◆効果音の演奏:回復8
 ◆画面のフラッシュ:(R31,G15,B31,V31),0.5秒
 ◆条件分岐:変数[0008:記憶:移動回数]が0
  ◆指定ラベルへ飛ぶ:1番
  ◆
 :分岐終了
 ◆変数の操作:[0001:移動回数]代入,変数[0008]の値
 ◆イベントの位置を設定:岩01,(V[0041],V[0042])
 ◆変数の操作:[0087:リプレイ変数番号]代入,変数[0081]の値
 ◆変数の操作:[0088:記憶:リプレイ変数番号]代入,151
 ◆変数の操作:[0089:記憶:リプレイ記憶回数]代入,1
 ◆ラベルの設定:3番
 ◆変数の操作:[V[0087]]代入,変数[V[0088]]の値<記憶されたリプレイ情報をコピー
 ◆変数の操作:[0087〜0089]加算,1<次の変数番号、移動回数にする
 ◆条件分岐:変数[0089:記憶:記憶回数]がV[0083]以下<まだ記憶する変数がある時
  ◆指定ラベルへ飛ぶ:3番
  ◆
 :分岐終了

 ◆
:[\>やり直し]の場合
 ◆効果音の演奏:フラッシュ1
 ◆画面のフラッシュ:(R31,G31,B31,V31),0.5秒
 ◆ラベルの設定:1番
 ◆変数の操作:[0001:移動回数]代入,0
 ◆イベントの位置を設定:岩01,(004,004)
 ◆
:分岐終了




☆リプレイを再生
リプレイを再生するイベントを設定します。

まず新しいマップ「リプレイ再生用」を作成してください。
このマップは、リプレイの再生で、初めから再生し直す時に使用します。
リプレイを最初から再生し直す場合、マップイベントの位置を元に戻す必要があります。
このマップイベントを元に戻す処理を、
「別のマップへ移動して戻ってくると、マップイベントの位置が元に戻る」と言う、
ツクールの仕様を利用して行います。
作成するマップには、何もイベントを設定する必要はありません。


入り口となるマップにある階段イベントに、
リプレイを再生するかどうかを選択する選択肢を設定してください。

■マップイベント「階段01」
イベント出現条件:なし
イベント開始条件:主人公が触れたとき(または[決定キーが押されたとき])
グラフィック:下り階段の絵
◆変数の操作:[0081:リプレイ記憶変数番号]代入,101
◆変数の操作:[0082:リプレイ保存変数番号]代入,201
◆変数の操作:[0083:リプレイ保存限界回数]代入,20
◆現在の場所を記憶:[0011],[0012],[0013]
◆条件分岐:変数[0021:記録01]が0
 ◆変数の操作:[0021:記録01]代入,999
 ◆
:分岐終了
◆文章:\>ステージ1に入りますか?
:  :\>\c[9]現在の移動回数:\c[4]\v[21]回\c[0]
◆選択肢の表示:\>入る/\>入らない
:[\>入る]の場合
 ◆選択肢の表示:\>ゲーム開始/\>リプレイ開始
 :[\>ゲーム開始]の場合
  ◆
 :[\>リプレイ開始]の場合
  ◆スイッチの操作:[0007:リプレイ再生:実行]をONにする
  ◆
 :分岐終了

 ◆画面の消去:場所移動の設定
 ◆キャラクターの動作指定:主人公,下を向く
 ◆指定動作の全実行
 ◆場所移動:ステージ01(005,004)
 ◆画面の表示:場所移動の設定
 ◆
:[\>入らない]の場合
 ◆
:分岐終了



階段イベントを開き、1ページ目が表示されている状態で、
[ページの新規作成]クリックしてください。

作成された2ページ目にリプレイを再生するイベントを設定します。
※元々あった2ページ目(クリア確認用のページ)は3ページ目に移動しています。

■マップイベント「階段イベント」
▼1ページ目
イベント出現条件:なし
イベント開始条件:主人公が触れたとき(または[決定キーが押されたとき])
グラフィック:上り階段の絵
◆選択肢の表示:\>ステージの外に出る/\>キャンセル
:[\>ステージの外に出る]の場合
 ◆画面の消去:場所移動の設定
 ◆キャラクターの動作指定:主人公,下を向く
 ◆指定動作の全実行
 ◆記憶した場所へ移動:V[0011](V[0012],V[0013])
 ◆画面の表示:場所移動の設定
 ◆変数の操作:[0001:移動回数]代入,0
 ◆
:[\>キャンセル]の場合
 ◆
:分岐終了


▼2ページ目
イベント出現条件:スイッチ[0007:リプレイ再生:実行]がON
イベント開始条件:自動的に始まる
グラフィック:上り階段の絵(1ページ目と同じ絵)
◆現在の場所を記憶:[0091],[0092],[0093]<リプレイ開始時の現在位置を記憶
◆変数の操作:[0094:再生:1ページ]代入,1
◆ラベルの設定:1番
◆条件分岐:スイッチ[0009:リプレイ再生:再生終了]がON<ステージクリアになった時
 ◆スイッチの操作:[0009:リプレイ再生:再生終了]をOFFにする
 ◆スイッチの操作:[0008:リプレイ再生:キー押し]をONにする
 ◆選択肢の表示:\>リプレイ初めから/\>リプレイ終了
 :[\>リプレイ初めから]の場合
  ◆ラベルの設定:2番
  ◆画面の消去:場所移動の設定
  ◆キャラクターの動作指定:主人公,下を向く
  ◆指定動作の全実行
  ◆場所移動:0003:リプレイ再生用(000,000)<一時的に別のマップへ移動
  ◆ウェイト:0.0秒
  ◆記憶した場所へ移動:V[0091] (V[0092],V[0093])<リプレイ再生開始時の位置へ移動
  ◆画面の表示:場所移動の設定
  ◆変数の操作:[0001:移動回数]代入,0
  ◆イベント処理の中断
  ◆
 :[\>リプレイ終了]の場合
  ◆ラベルの設定:3番
  ◆画面の消去:場所移動の設定
  ◆キャラクターの動作指定:主人公,下を向く
  ◆指定動作の全実行
  ◆記憶した場所へ移動:V[0011](V[0012],V[0013])
  ◆画面の表示:場所移動の設定
  ◆変数の操作:[0001:移動回数]代入,0
  ◆スイッチの操作:[0007:リプレイ再生:実行]をOFFにする
  ◆イベント処理の中断
  ◆
 :分岐終了
 ◆
:分岐終了
◆キー入力の処理:[0007:キー入力](決定・取消/オプション:OFF)
◆条件分岐:変数[0007:キー入力]が0以外(オプション:ON)<キーが押されている時
 ◆条件分岐:スイッチ[0008:リプレイ再生:キー押し]がOFF
  ◆スイッチの操作:[0008:リプレイ再生:キー押し]をONにする
  ◆選択肢の表示:\>リプレイ続ける/\>リプレイ初めから/\>リプレイ終了
  :[\>リプレイ続ける]の場合
   ◆
  :[\>リプレイ初めから]の場合
   ◆指定ラベルへ飛ぶ:2番
   ◆
  :[\>リプレイ終了]の場合
   ◆指定ラベルへ飛ぶ:3番
   ◆
  :分岐終了
  ◆
 :分岐終了
 ◆
:それ以外の場合
 ◆スイッチの操作:[0008:リプレイ再生:キー押し]をOFFにする
 ◆
:分岐終了
◆変数の操作:[0087:リプレイ変数番号]代入,変数[0082]の値
◆変数の操作:[0087:リプレイ変数番号]加算,変数[0001]の値
◆変数の操作:[0084〜0086]代入,変数[V[0087]]の値
◆変数の操作:[0085:リプレイX座標]除算,10000
◆変数の操作:[0086:リプレイY座標]除算,100
◆変数の操作:[0084〜0086]剰余,100
◆変数の操作:[0085:リプレイX座標]減算,主人公のX座標
◆変数の操作:[0086:リプレイY座標]減算,主人公のY座標
◆条件分岐:変数[0085:リプレイX座標]が0以外<左右の移動が必要な時
 ◆条件分岐:変数[0085:リプレイX座標]が1以上(オプション:ON)<岩が現在位置より右にある時
  ◆キャラクターの動作指定:主人公,右に移動
  ◆
 :それ以外の場合<岩が現在位置より左にある時
  ◆キャラクターの動作指定:主人公,左に移動
  ◆
 :分岐終了
 ◆指定動作の全実行
 ◆指定ラベルへ飛ぶ:1番
 ◆
:分岐終了
◆条件分岐:変数[0086:リプレイY座標]が0以外<上下の移動が必要な時
 ◆条件分岐:変数[0086:リプレイY座標]が1以上(オプション:ON)<岩が現在位置より下にある時
  ◆キャラクターの動作指定:主人公,下に移動
  ◆
 :それ以外の場合<岩が現在位置より上にある時
  ◆キャラクターの動作指定:主人公,上に移動
  ◆
 :分岐終了
 ◆指定動作の全実行
 ◆指定ラベルへ飛ぶ:1番
 ◆
:分岐終了
◆ウェイト:0.3秒<主人公の移動と岩の移動との間を空ける演出用
◆変数の操作:[0002:X座標]代入,主人公のX座標
◆変数の操作:[0003:Y座標]代入,主人公のY座標
◆指定位置のイベントID取得:(V[0002],V[0003]),[0004:ID]
◆イベントの呼び出し:V[4][V[94]]<岩イベントの1ページ目を呼び出す
◆イベントの呼び出し:このイベント[3]<ステージクリアを確認
◆指定ラベルへ飛ぶ:1番


▼3ページ目
イベント出現条件:スイッチ[0001:クリア確認]がON
イベント開始条件:自動的に始まる
グラフィック:上り階段の絵(1ページ目と同じ絵)
イベント実行内容の追加する部分は、以下の黄色い文字の所です。
◆スイッチの操作:[0001:クリア確認]をOFFにする
◆指定位置のイベントID取得:(005,003),[0004:ID]
◆条件分岐:変数[0004:ID]が0
 ◆イベント処理の中断
 ◆
:分岐終了
◆BGMの演奏:J戦闘終了!
◆条件分岐:変数[0021:記録01]がV[0001]より大きい(オプション:ON)
 ◆文章:ステージクリア!
 :  :\c[2]記録更新!
 :  :\c[3]\v[21]\c[0] → \c[4]\v[1]
 ◆変数の操作:[0021:記録01]代入,変数[0001]の値
 ◆ラベルの設定:1番
 ◆変数の操作:[V[0082]]代入,変数[V[0081]]の値<一時保存のリプレイ情報をコピー
 ◆条件分岐:変数[0083:リプレイ保存限界回数]が1以上<まだコピーする変数が残っている時
  ◆変数の操作:[0083:リプレイ保存限界回数]減算,1
  ◆指定ラベルへ飛ぶ:1番
  ◆
 :分岐終了

 ◆
:それ以外の場合
 ◆文章:ステージクリア!
 ◆
:分岐終了
◆条件分岐:スイッチ[0007:リプレイ再生:実行]がON
 ◆スイッチの操作:[0009:リプレイ再生:再生終了]をONにする
 ◆イベント処理の中断
 ◆
:分岐終了

◆画面の消去:場所移動の設定
◆キャラクターの動作指定:主人公,下を向く
◆指定動作の全実行
◆記憶した場所へ移動:V[0011](V[0012],V[0013])
◆画面の表示:場所移動の設定
◆変数の操作:[0001:移動回数]代入,0

※補助イベントを設定している場合は、上記設定の
 ◆変数の操作:[0001:移動回数]代入,0
 の所に、
 ◆変数の操作:[0008:記憶:移動回数]代入,0
 も設定してください。



岩イベントに、リプレイ再生用のイベントを追加してください。

■マップイベント「岩01」
イベント出現条件:なし
イベント開始条件:決定キーが押されたとき
グラフィック:岩の絵
移動速度:標準速
この色の設定は、元々あったイベント設定を条件分岐内へ移動しています。
◆変数の操作:[0005〜0006]代入,0
◆条件分岐:スイッチ[0007:リプレイ再生:実行]がOFF(オプション:ON)<リプレイ再生ではない時
 ◆選択肢の表示:\>上に移動/\>下に移動/\>左に移動/\>右に移動(キャンセル:独立)<設定位置を移動
 :[\>上に移動]の場合
  ◆変数の操作:[0006:Y座標±]代入,-1
  ◆キャラクターの動作指定:このイベント,上を向く
  ◆変数の操作:[0086:リプレイXY向]代入,4
  ◆
 :[\>下に移動]の場合
  ◆変数の操作:[0006:Y座標±]代入,1
  ◆キャラクターの動作指定:このイベント,下を向く
  ◆変数の操作:[0086:リプレイXY向]代入,1
  ◆
 :[\>左に移動]の場合
  ◆変数の操作:[0005:X座標±]代入,-1
  ◆キャラクターの動作指定:このイベント,左を向く
  ◆変数の操作:[0086:リプレイXY向]代入,2
  ◆
 :[\>右に移動]の場合
  ◆変数の操作:[0005:X座標±]代入,1
  ◆キャラクターの動作指定:このイベント,右を向く
  ◆変数の操作:[0086:リプレイXY向]代入,3
  ◆
 :キャンセルの場合
  ◆イベント処理の中断
  ◆
 :分岐終了

 ◆
:それ以外の場合<リプレイ再生の時
 ◆条件分岐:変数[0086:リプレイXY向]が1
  ◆変数の操作:[0006:Y座標±]代入,1
  ◆キャラクターの動作指定:このイベント,下を向く
  ◆
 :分岐終了
 ◆条件分岐:変数[0086:リプレイXY向]が2
  ◆変数の操作:[0005:X座標±]代入,-1
  ◆キャラクターの動作指定:このイベント,左を向く
  ◆
 :分岐終了
 ◆条件分岐:変数[0086:リプレイXY向]が3
  ◆変数の操作:[0005:X座標±]代入,1
  ◆キャラクターの動作指定:このイベント,右を向く
  ◆
 :分岐終了
 ◆条件分岐:変数[0086:リプレイXY向]が4
  ◆変数の操作:[0006:Y座標±]代入,-1
  ◆キャラクターの動作指定:このイベント,上を向く
  ◆
 :分岐終了
 ◆
:分岐終了

◆指定動作の全実行
◆スイッチの操作:[0001:クリア確認]をONにする
◆変数の操作:[0002:X座標]代入,このイベントのX座標
◆変数の操作:[0003:Y座標]代入,このイベントのY座標
◆注釈:------------------------------------------------------------
:  :1マス目の移動
:  : 

◆変数の操作:[0002:X座標]加算,変数[0005]の値
◆変数の操作:[0003:Y座標]加算,変数[0006]の値
◆指定位置の地形ID取得:(V[0002],V[0003]),[0004:ID]
◆条件分岐:変数[0004:ID]が2
 ◆イベント処理の中断
 ◆
:分岐終了
◆指定位置のイベントID取得:(V[0002],V[0003]),[0004:ID]
◆条件分岐:変数[0004:ID]が1以上
 ◆イベント処理の中断
 ◆
:分岐終了
◆キャラクターの動作指定:このイベント,一歩前進
◆指定動作の全実行
◆変数の操作:[0001:移動回数]加算,1
◆イベントの呼び出し:リプレイ保存
◆注釈:------------------------------------------------------------
:  :2マス目の移動
:  : 

◆変数の操作:[0002:X座標]加算,変数[0005]の値
◆変数の操作:[0003:Y座標]加算,変数[0006]の値
◆指定位置の地形ID取得:(V[0002],V[0003]),[0004:ID]
◆条件分岐:変数[0004:ID]が2
 ◆イベント処理の中断
 ◆
:分岐終了
◆指定位置のイベントID取得:(V[0002],V[0003]),[0004:ID]
◆条件分岐:変数[0004:ID]が1以上
 ◆イベント処理の中断
 ◆
:分岐終了
◆キャラクターの動作指定:このイベント,一歩前進
◆指定動作の全実行
◆注釈:------------------------------------------------------------
:  :3マス目の移動
:  : 

◆指定位置の地形ID取得:(V[0002],V[0003]),[0004:ID]
◆条件分岐:変数[0004:ID]が2
 ◆イベント処理の中断
 ◆
:分岐終了
◆指定位置のイベントID取得:(V[0002],V[0003]),[0004:ID]
◆条件分岐:変数[0004:ID]が1以上
 ◆イベント処理の中断
 ◆
:分岐終了
◆キャラクターの動作指定:このイベント,一歩前進
◆指定動作の全実行

※他の岩イベントはコピー&貼り付けで設定を行ってください。


補助イベントを設定している場合、
リプレイ再生中に補助イベントが起動しないようにする必要があります。

■マップイベント「補助イベント」
イベント出現条件:なし
イベント開始条件:定期的に並列処理する
グラフィック:透明
◆条件分岐:スイッチ[0007:リプレイ再生:実行]がON
 ◆イベントの一時消去
 ◆
:分岐終了

◆キー入力の処理:[0007:キー入力](Shift/オプション:ON)
◆効果音の演奏:決定1
◆文章:\>現在の移動回数:\v[1]回
◆選択肢の表示:\>記憶/\>呼出/\>やり直し/\>キャンセル(キャンセルの場合:選択肢4)
:[\>記憶]の場合
 ◆効果音の演奏:冷気7
 ◆画面のフラッシュ:(R00,G31,B31,V31),0.5秒
 ◆変数の操作:[0008:記憶:移動回数]代入,変数[0001]の値
 ◆変数の操作:[0041:記憶:岩01X]代入,岩01のX座標
 ◆変数の操作:[0042:記憶:岩01Y]代入,岩01のY座標
 ◆変数の操作:[0087:リプレイ変数番号]代入,変数[0081]の値
 ◆変数の操作:[0088:記憶:リプレイ変数番号]代入,151
 ◆変数の操作:[0089:記憶:リプレイ記憶回数]代入,1
 ◆ラベルの設定:2番
 ◆変数の操作:[V[0088]]代入,変数[V[0087]]の値
 ◆変数の操作:[0087〜0089]加算,1
 ◆条件分岐:変数[0089:記憶:記憶回数]がV[0083]以下
  ◆指定ラベルへ飛ぶ:2番
  ◆
 :分岐終了
 ◆
:[\>呼出]の場合
 ◆効果音の演奏:回復8
 ◆画面のフラッシュ:(R31,G15,B31,V31),0.5秒
 ◆条件分岐:変数[0008:記憶:移動回数]が0
  ◆指定ラベルへ飛ぶ:1番
  ◆
 :分岐終了
 ◆変数の操作:[0001:移動回数]代入,変数[0008]の値
 ◆イベントの位置を設定:岩01,(V[0041],V[0042])
 ◆変数の操作:[0087:リプレイ変数番号]代入,変数[0081]の値
 ◆変数の操作:[0088:記憶:リプレイ変数番号]代入,151
 ◆変数の操作:[0089:記憶:リプレイ記憶回数]代入,1
 ◆ラベルの設定:3番
 ◆変数の操作:[V[0087]]代入,変数[V[0088]]の値
 ◆変数の操作:[0087〜0089]加算,1
 ◆条件分岐:変数[0089:記憶:記憶回数]がV[0083]以下
  ◆指定ラベルへ飛ぶ:3番
  ◆
 :分岐終了
 ◆
:[\>やり直し]の場合
 ◆効果音の演奏:フラッシュ1
 ◆画面のフラッシュ:(R31,G31,B31,V31),0.5秒
 ◆ラベルの設定:1番
 ◆変数の操作:[0001:移動回数]代入,0
 ◆イベントの位置を設定:岩01,(004,004)
 ◆
:分岐終了



以上で設定完了です。


ステージ2の設定方法は、別途ページを用意しました。
【ステージ2の補助イベントの設定方法を見る】



◎関連ページ
 ●パズルゲーム『岩動』を作る
 ○ステージを増やす
 ┣○補助イベントを追加
 ┣○ピクチャーを使った演出を追加
 ┗
○リプレイ処理を追加


YADOTトップ  このサイトは何?  気紛れな空間へ戻る  メール