RPGツクール2000/自作戦闘
ピクチャー弾丸を飛ばす
■画面スクロールに対応させる
(更新:2009/08/29)


ピクチャー弾丸を飛ばすイベントを画面スクロールに対応させます。


このページは続きとなっているページです
ピクチャー弾丸の基礎ページをご覧の上で
このページをご覧ください。
【ピクチャー弾丸の基礎ページを開く】

この色の部分はピクチャー弾丸を飛ばすのページにあった部分です。



☆画面スクロールの対応について

弾丸発射

左へ移動
 本来は水色の線の位置で移動して、
 黄色い丸の位置に弾丸が来なければいけません。
 しかしピクチャーの表示は、
 画面のスクロールに関係なく表示されますので、
 主人公が左に移動しますと、
 それに合わせてピクチャーの表示位置も左に移動します。

ピクチャー弾丸を飛ばしている時に、画面スクロールをする時には、
ピクチャー弾丸の表示位置を画面スクロールに合わせて変えていく必要があります。

弾丸の表示位置をずらす条件としては、
主人公が別のマスへ移動しているかどうかを調べます。
もしも別のマスへ移動した時には、主人公の画面の位置を調べます。
そして主人公の画面位置がX152、Y128である時には、
画面がスクロールしたと判断して、ピクチャーの表示位置をずらします。



☆2種類の画面スクロール
画面スクロールの設定には、2種類あります。
1つは、マップサイズがX20、Y15より大きい場合の画面スクロール。
もう1つは、マップの設定にて、ループ設定が行われている時の画面スクロールです。

マップのループが設定されていない時の画面スクロールの場合は、
マップの端へ移動しますと、画面スクロールが行われない事があります。
イベント設定では、主人公の移動時に画面スクロールが行われているかどうかを調べ、
もしも画面スクロールが行われている時には、弾丸の表示位置をずらすようにします。

マップのループが設定されている時には、
主人公の移動時に必ず画面スクロールが行われますので、
主人公の移動時には必ず弾丸の表示位置をずらす設定を行います。



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

スイッチ
番号 名前 使用内容 初使用ページ
0001 システム起動 初期設定が終わったらON→弾丸処理実行。 基礎
0004 画面スクロールX 横の画面スクロールを行う時にON。※ループ設定なしで使用。 画面スクロール
0005 画面スクロールY 縦の画面スクロールを行う時にON。※ループ設定なしで使用。 画面スクロール
 
0011 弾丸移動中01 ONの時には弾丸01は移動中。 基礎
0012 弾丸移動中02 ONの時には弾丸02は移動中。 基礎
0013 弾丸移動中03 ONの時には弾丸03は移動中。 基礎

変数
番号 名前 使用内容 初使用ページ
0001 キー入力 決定キーが押されているかどうかを判断する時に使用。 基礎
0002 移動距離 ピクチャー弾丸が移動する距離(射程)を設定。 基礎
0003 X± 向きに合わせて1回の処理で移動するXの移動量を設定。 基礎
0004 Y± 向きに合わせて1回の処理で移動するYの移動量を設定。 基礎
0005 X座標 弾丸の位置のX座標を設定。 当たり判定
0006 Y座標 弾丸の位置のY座標を設定。 当たり判定
 
0021 キーカウント 弾丸が発射して、次の弾丸が発射するまでの間をカウント。 基礎
 
0031 弾丸移動量01 発射時から1ずつ加算していき、
変数[0002:移動距離]以上の値になったら弾丸01を消去。
基礎
0032 弾丸移動量02 発射時から1ずつ加算していき、
変数[0002:移動距離]以上の値になったら弾丸02を消去。
基礎
0033 弾丸移動量03 発射時から1ずつ加算していき、
変数[0002:移動距離]以上の値になったら弾丸03を消去。
基礎
 
0041 弾丸01X 弾丸01のX位置を記憶。 基礎
0042 弾丸02X 弾丸02のX位置を記憶。 基礎
0043 弾丸03X 弾丸03のX位置を記憶。 基礎
0051 弾丸01Y 弾丸01のY位置を記憶。 基礎
0052 弾丸02Y 弾丸02のY位置を記憶。 基礎
0053 弾丸03Y 弾丸03のY位置を記憶。 基礎
 
0061 弾丸01X± 弾丸01の1回のXの移動量を記憶。 基礎
0062 弾丸02X± 弾丸02の1回のXの移動量を記憶。 基礎
0063 弾丸03X± 弾丸03の1回のXの移動量を記憶。 基礎
0071 弾丸01Y± 弾丸01の1回のYの移動量を記憶。 基礎
0072 弾丸02Y± 弾丸02の1回のYの移動量を記憶。 基礎
0073 弾丸03Y± 弾丸03の1回のYの移動量を記憶。 基礎
 
0161 XY 主人公のマス情報を代入。 画面スクロール
0162 前のXY 変数0161番と比べて値が異なる場合は、移動したと判断。 画面スクロール
0163 ずらす回数 画面スクロールに合わせてずらす回数を設定。 画面スクロール
0164 ずらす量X 画面スクロールに合わせて弾丸の表示位置をずらす値を設定。 画面スクロール
0165 ずらす量Y 画面スクロールに合わせて弾丸の表示位置をずらす値を設定。 画面スクロール
0166 位置調整X 画面スクロール時のマス座標の計算のずれを修正する時に使用。 画面スクロール
0167 位置調整Y 画面スクロール時のマス座標の計算のずれを修正する時に使用。 画面スクロール
0168 主人公の画面位置 主人公の画面位置を出力。 画面スクロール
0169 画面スクロールX+ 横にスクロールしたドット数を設定。 画面スクロール
0170 画面スクロールY+ 縦にスクロールしたドット数を設定。 画面スクロール
0171 マップサイズX マップの横のマス数を設定。※ループ設定ありで使用。 画面スクロール
0172 マップサイズY マップの縦のマス数を設定。※ループ設定ありで使用。 画面スクロール

【スイッチ・変数の一覧表を開く】

変数0161番の値は、X座標を1000倍して、Y座標を加算して設定します。
例:X=32、Y=6の場合は、変数0161番の値は「32006」になります。


■変数0169、0170番について
変数[0169:画面スクロールX+]変数[0170:画面スクロールY+]は、
マップの左上をX0Y0として、画面がスクロールしたドット距離を設定します。

この場合は、マップの左上が見えているので、
変数0169番=0
変数0170番=0

になります。

▼右に1歩移動

この場合は、マップの左上から右に16ドット移動しましたので、
変数0169番=16
変数0170番=0

になります。

このX座標が「10」の時に上向きで弾丸を発射しますと、
弾丸のX位置は「152」になります。
このまま弾丸のX位置を「除算16」で計算しますと、
「152÷16=9」と言う結果になり、弾丸はX座標「10」の所を飛んでいるのに、
当たり判定はX座標「9」のマスを調べてしまいます。

しかし弾丸のX位置変数0169番を加算してから「除算16」にする事で、
「(152+16)÷16=10」と言う結果になり、
弾丸が飛んでいるX座標「10」のマスの当たり判定を調べられるようになります。



☆ループ設定の無い画面スクロール
ループ設定の無いマップでの画面スクロールの設定を行います。
ループ設定ありの場合は、
 下記の☆ループ設定がある画面スクロールをご覧ください。

▼☆ループ設定がある画面スクロールの所まで移動

初期設定の設定は基礎ページと変わりません。

■コモンイベント「弾丸処理」
出現条件スイッチ:[0001:システム起動]
イベント開始条件:定期的に並列処理する
◆ラベルの設定:1番
◆注釈:------------------------------------------------------------
:  :弾丸発射
:  : 

◆キー入力の処理:[0001:キー入力](決定/オプション:OFF)
◆ウェイト:0.0秒
◆条件分岐:変数[0001:キー入力]が0
 ◆キー入力の処理:[0001:キー入力](決定/オプション:OFF)
 ◆
:分岐終了
◆条件分岐:変数[0021:キーカウント]が0より小さい
 ◆変数の操作:[0001:キー入力]代入,0
 ◆
:分岐終了
◆条件分岐:変数[0001:キー入力]が5
 ◆変数の操作:[0003〜0004]代入,0
 ◆条件分岐:主人公が左に向いている
  ◆変数の操作:[0003:X±]代入,-4
  ◆
 :分岐終了
 ◆条件分岐:主人公が右に向いている
  ◆変数の操作:[0003:X±]代入,4
  ◆
 :分岐終了
 ◆条件分岐:主人公が上に向いている
  ◆変数の操作:[0004:Y±]代入,-4
  ◆
 :分岐終了
 ◆条件分岐:主人公が下に向いている
  ◆変数の操作:[0004:Y±]代入,4
  ◆
 :分岐終了
 ◆条件分岐:スイッチ[0011:弾丸移動中01]がOFF
  ◆スイッチの操作:[0011:弾丸移動中01]をONにする
  ◆変数の操作:[0021:キーカウント]代入,-10
  ◆変数の操作:[0031:弾丸移動量01]代入,0
  ◆変数の操作:[0041:弾丸01X]代入,主人公の画面X
  ◆変数の操作:[0051:弾丸01Y]代入,主人公の画面Y
  ◆変数の操作:[0051:弾丸01Y]減算,8
  ◆変数の操作:[0061:弾丸01X±]代入,変数[0003]の値
  ◆変数の操作:[0071:弾丸01Y±]代入,変数[0004]の値
  ◆効果音の演奏:打撃4
  ◆指定ラベルへ飛ぶ:2番
  ◆
 :分岐終了
 ◆条件分岐:スイッチ[0012:弾丸移動中02]がOFF
  ◆スイッチの操作:[0012:弾丸移動中02]をONにする
  ◆変数の操作:[0021:キーカウント]代入,-10
  ◆変数の操作:[0032:弾丸移動量02]代入,0
  ◆変数の操作:[0042:弾丸02X]代入,主人公の画面X
  ◆変数の操作:[0052:弾丸02Y]代入,主人公の画面Y
  ◆変数の操作:[0052:弾丸02Y]減算,8
  ◆変数の操作:[0062:弾丸02X±]代入,変数[0003]の値
  ◆変数の操作:[0072:弾丸02Y±]代入,変数[0004]の値
  ◆効果音の演奏:打撃4
  ◆指定ラベルへ飛ぶ:2番
  ◆
 :分岐終了
 ◆条件分岐:スイッチ[0013:弾丸移動中03]がOFF
  ◆スイッチの操作:[0013:弾丸移動中03]をONにする
  ◆変数の操作:[0021:キーカウント]代入,-10
  ◆変数の操作:[0033:弾丸移動量03]代入,0
  ◆変数の操作:[0043:弾丸03X]代入,主人公の画面X
  ◆変数の操作:[0053:弾丸03Y]代入,主人公の画面Y
  ◆変数の操作:[0053:弾丸03Y]減算,8
  ◆変数の操作:[0063:弾丸03X±]代入,変数[0003]の値
  ◆変数の操作:[0073:弾丸03Y±]代入,変数[0004]の値
  ◆効果音の演奏:打撃4
  ◆
 :分岐終了
 ◆ラベルの設定:2番
 ◆
:分岐終了
◆注釈:------------------------------------------------------------
:  :画面スクロール
:  : 

◆変数の操作:[0161:XY]代入,主人公のX座標
◆変数の操作:[0161:XY]乗算,1000
◆変数の操作:[0161:XY]加算,主人公のY座標
◆条件分岐:変数[0162:前のXY]がV[0161]以外<別のマスへ移動した時
 ◆変数の操作:[0162:前のXY]代入,変数[0161]の値
 ◆変数の操作:[0163:ずらす回数]代入,8
 ◆変数の操作:[0164〜0167]代入,0
 ◆条件分岐:主人公が左を向いている<主人公が左へ移動した時
  ◆変数の操作:[0164:ずらす量X]代入,2
  ◆変数の操作:[0166:位置調整X]代入,16
  ◆
 :分岐終了
 ◆条件分岐:主人公が右を向いている<主人公が右へ移動した時
  ◆変数の操作:[0164:ずらす量X]代入,-2
  ◆変数の操作:[0166:位置調整X]代入,-16
  ◆
 :分岐終了
 ◆条件分岐:主人公が上を向いている<主人公が上へ移動した時
  ◆変数の操作:[0165:ずらす量Y]代入,2
  ◆変数の操作:[0167:位置調整Y]代入,16
  ◆
 :分岐終了
 ◆条件分岐:主人公が下を向いている<主人公が下へ移動した時
  ◆変数の操作:[0165:ずらす量Y]代入,-2
  ◆変数の操作:[0167:位置調整Y]代入,-16
  ◆
 :分岐終了
 ◆スイッチの操作:[0004〜0005]をONにする
 ◆変数の操作:[0168:画面位置出力]代入,主人公の画面X
 ◆条件分岐:変数[0168:画面位置出力]が152以外<主人公が画面の中央にいない時
  ◆スイッチの操作:[0004:画面スクロールX]をOFFにする
  ◆
 :分岐終了
 ◆変数の操作:[0168:画面位置出力]代入,主人公の画面Y
 ◆条件分岐:変数[0168:画面位置出力]が128以外<主人公が画面の中央にいない時
  ◆スイッチの操作:[0005:画面スクロールY]をOFFにする
  ◆
 :分岐終了
 ◆
:分岐終了
◆条件分岐:変数[0163:ずらす回数]が1以上<画面のスクロールに合わせて弾丸の表示位置移動
 ◆変数の操作:[0163:ずらす回数]減算,1
 ◆条件分岐:スイッチ[0004:画面スクロールX]がON
  ◆変数の操作:[0041〜0043]加算,変数[0164]の値<左右のずれを調整する
  ◆
 :分岐終了

 ◆条件分岐:スイッチ[0005:画面スクロールY]がON
  ◆変数の操作:[0051〜0053]加算,変数[0165]の値<上下のずれを調整する
  ◆
 :分岐終了
 ◆変数の操作:[0166:位置調整X]減算,変数[0164]の値
 ◆変数の操作:[0167:位置調整Y]減算,変数[0165]の値
 ◆
:分岐終了
◆変数の操作:[0169:画面スクロールX+]代入,主人公のX座標
◆変数の操作:[0170:画面スクロールY+]代入,主人公のY座標
◆変数の操作:[0169〜0170]乗算,16
◆変数の操作:[0169:画面スクロールX+]加算,8
◆変数の操作:[0170:画面スクロールY+]加算,16
◆変数の操作:[0169:画面スクロールX+]減算,主人公の画面X
◆変数の操作:[0170:画面スクロールY+]減算,主人公の画面Y
◆変数の操作:[0169:画面スクロールX+]加算,変数[0166]の値
◆変数の操作:[0170:画面スクロールY+]加算,変数[0167]の値

◆注釈:------------------------------------------------------------
:  :弾丸移動
:  :
 
◆変数の操作:[0002:移動距離]代入,20
◆変数の操作:[0021〜0033]加算,1
◆条件分岐:スイッチ[0002:弾丸移動中01]がON(オプション:ON)
 ◆条件分岐:変数[0031:弾丸移動量01]がV[0002]以上
  ◆スイッチの操作:[0002:弾丸移動中01]をOFFにする
  ◆
 :分岐終了
 ◆変数の操作:[0041:弾丸01X]加算,変数[0061]の値
 ◆変数の操作:[0051:弾丸01Y]加算,変数[0071]の値
 ◆ピクチャーの移動:1,(V[0041],V[0051]),0.0秒(透明度:0%)
 ◆変数の操作:[0005:X座標]代入,変数[0041]の値
 ◆変数の操作:[0006:Y座標]代入,変数[0051]の値
 ◆変数の操作:[0005:X座標]加算,変数[0169]の値
 ◆変数の操作:[0006:Y座標]加算,変数[0170]の値
 ◆変数の操作:[0005〜0006]除算,16
 ◆
〜必要に応じて、地形ID取得などを変数0005番、変数0006番を使って設定〜
 ◆
:それ以外の場合
 ◆ピクチャーの移動:1,(160,120),0.0秒(透明度:100%)
 ◆
:分岐終了
◆条件分岐:スイッチ[0003:弾丸移動中02]がON(オプション:ON)
 ◆条件分岐:変数[0032:弾丸移動量02]がV[0002]以上
  ◆スイッチの操作:[0003:弾丸移動中02]をOFFにする
  ◆
 :分岐終了
 ◆変数の操作:[0042:弾丸02X]加算,変数[0062]の値
 ◆変数の操作:[0052:弾丸02Y]加算,変数[0072]の値
 ◆ピクチャーの移動:2,(V[0042],V[0052]),0.0秒(透明度:0%)
 ◆変数の操作:[0005:X座標]代入,変数[0042]の値
 ◆変数の操作:[0006:Y座標]代入,変数[0052]の値
 ◆変数の操作:[0005:X座標]加算,変数[0169]の値
 ◆変数の操作:[0006:Y座標]加算,変数[0170]の値
 ◆変数の操作:[0005〜0006]除算,16
 ◆
〜必要に応じて、地形ID取得などを変数0005番、変数0006番を使って設定〜
 ◆
:それ以外の場合
 ◆ピクチャーの移動:2,(160,120),0.0秒(透明度:100%)
 ◆
:分岐終了
◆条件分岐:スイッチ[0004:弾丸移動中03]がON(オプション:ON)
 ◆条件分岐:変数[0033:弾丸移動量03]がV[0002]以上
  ◆スイッチの操作:[0004:弾丸移動中03]をOFFにする
  ◆
 :分岐終了
 ◆変数の操作:[0043:弾丸03X]加算,変数[0063]の値
 ◆変数の操作:[0053:弾丸03Y]加算,変数[0073]の値
 ◆ピクチャーの移動:3,(V[0043],V[0053]),0.0秒(透明度:0%)
 ◆変数の操作:[0005:X座標]代入,変数[0043]の値
 ◆変数の操作:[0006:Y座標]代入,変数[0053]の値
 ◆変数の操作:[0005:X座標]加算,変数[0169]の値
 ◆変数の操作:[0006:Y座標]加算,変数[0170]の値
 ◆変数の操作:[0005〜0006]除算,16
 ◆
〜必要に応じて、地形ID取得などを変数0005番、変数0006番を使って設定〜
 ◆
:それ以外の場合
 ◆ピクチャーの移動:3,(160,120),0.0秒(透明度:100%)
 ◆
:分岐終了
◆指定ラベルへ飛ぶ:1番



  
☆ループ設定がある画面スクロール
ループ設定のあるマップでの画面スクロールの設定を行います。

■マップイベント「初期設定」
○1ページ目
イベント出現条件:なし
イベント開始条件:自動的に始まる
◆ピクチャーの表示:1,dan(160,120)(透明度:100%)
◆ピクチャーの表示:2,dan(160,120)(透明度:100%)
◆ピクチャーの表示:3,dan(160,120)(透明度:100%)
◆変数の操作:[0171:マップサイズX]代入,30<このマップの横が30マスの時
◆変数の操作:[0172:マップサイズY]代入,25<このマップの縦が25マスの時

◆スイッチの操作:[0001:システム起動]をONにする

○2ページ目
イベント出現条件:スイッチ[0001:システム起動]がON
イベント開始条件:決定キーが押されたとき
イベント実行内容の設定は不要です。


■コモンイベント「弾丸処理」
出現条件スイッチ:スイッチ[0001:システム起動]がON
イベント開始条件:定期的に並列処理する
◆ラベルの設定:1番
◆注釈:------------------------------------------------------------
:  :弾丸発射
:  : 

◆キー入力の処理:[0001:キー入力](決定/オプション:OFF)
◆ウェイト:0.0秒
◆条件分岐:変数[0001:キー入力]が0
 ◆キー入力の処理:[0001:キー入力](決定/オプション:OFF)
 ◆
:分岐終了
◆条件分岐:変数[0021:キーカウント]が0より小さい
 ◆変数の操作:[0001:キー入力]代入,0
 ◆
:分岐終了
◆条件分岐:変数[0001:キー入力]が5
 ◆変数の操作:[0003〜0004]代入,0
 ◆条件分岐:主人公が左に向いている
  ◆変数の操作:[0003:X±]代入,-4
  ◆
 :分岐終了
 ◆条件分岐:主人公が右に向いている
  ◆変数の操作:[0003:X±]代入,4
  ◆
 :分岐終了
 ◆条件分岐:主人公が上に向いている
  ◆変数の操作:[0004:Y±]代入,-4
  ◆
 :分岐終了
 ◆条件分岐:主人公が下に向いている
  ◆変数の操作:[0004:Y±]代入,4
  ◆
 :分岐終了
 ◆条件分岐:スイッチ[0011:弾丸移動中01]がOFF
  ◆スイッチの操作:[0011:弾丸移動中01]をONにする
  ◆変数の操作:[0021:キーカウント]代入,-10
  ◆変数の操作:[0031:弾丸移動量01]代入,0
  ◆変数の操作:[0041:弾丸01X]代入,主人公の画面X
  ◆変数の操作:[0051:弾丸01Y]代入,主人公の画面Y
  ◆変数の操作:[0051:弾丸01Y]減算,8
  ◆変数の操作:[0061:弾丸01X±]代入,変数[0003]の値
  ◆変数の操作:[0071:弾丸01Y±]代入,変数[0004]の値
  ◆効果音の演奏:打撃4
  ◆指定ラベルへ飛ぶ:2番
  ◆
 :分岐終了
 ◆条件分岐:スイッチ[0012:弾丸移動中02]がOFF
  ◆スイッチの操作:[0012:弾丸移動中02]をONにする
  ◆変数の操作:[0021:キーカウント]代入,-10
  ◆変数の操作:[0032:弾丸移動量02]代入,0
  ◆変数の操作:[0042:弾丸02X]代入,主人公の画面X
  ◆変数の操作:[0052:弾丸02Y]代入,主人公の画面Y
  ◆変数の操作:[0052:弾丸02Y]減算,8
  ◆変数の操作:[0062:弾丸02X±]代入,変数[0003]の値
  ◆変数の操作:[0072:弾丸02Y±]代入,変数[0004]の値
  ◆効果音の演奏:打撃4
  ◆指定ラベルへ飛ぶ:2番
  ◆
 :分岐終了
 ◆条件分岐:スイッチ[0013:弾丸移動中03]がOFF
  ◆スイッチの操作:[0013:弾丸移動中03]をONにする
  ◆変数の操作:[0021:キーカウント]代入,-10
  ◆変数の操作:[0033:弾丸移動量03]代入,0
  ◆変数の操作:[0043:弾丸03X]代入,主人公の画面X
  ◆変数の操作:[0053:弾丸03Y]代入,主人公の画面Y
  ◆変数の操作:[0053:弾丸03Y]減算,8
  ◆変数の操作:[0063:弾丸03X±]代入,変数[0003]の値
  ◆変数の操作:[0073:弾丸03Y±]代入,変数[0004]の値
  ◆効果音の演奏:打撃4
  ◆
 :分岐終了
 ◆ラベルの設定:2番
 ◆
:分岐終了
◆注釈:------------------------------------------------------------
:  :画面スクロール
:  : 

◆変数の操作:[0161:XY]代入,主人公のX座標
◆変数の操作:[0161:XY]乗算,1000
◆変数の操作:[0161:XY]加算,主人公のY座標
◆条件分岐:変数[0162:前のXY]がV[0161]以外<別のマスへ移動した時
 ◆変数の操作:[0162:前のXY]代入,変数[0161]の値
 ◆変数の操作:[0163:ずらす回数]代入,8
 ◆変数の操作:[0164〜0167]代入,0
 ◆条件分岐:主人公が左を向いている<主人公が左へ移動した時
  ◆変数の操作:[0164:ずらす量X]代入,2
  ◆変数の操作:[0166:位置調整X]代入,16
  ◆
 :分岐終了
 ◆条件分岐:主人公が右を向いている<主人公が右へ移動した時
  ◆変数の操作:[0164:ずらす量X]代入,-2
  ◆変数の操作:[0166:位置調整X]代入,-16
  ◆
 :分岐終了
 ◆条件分岐:主人公が上を向いている<主人公が上へ移動した時
  ◆変数の操作:[0165:ずらす量Y]代入,2
  ◆変数の操作:[0167:位置調整Y]代入,16
  ◆
 :分岐終了
 ◆条件分岐:主人公が下を向いている<主人公が下へ移動した時
  ◆変数の操作:[0165:ずらす量Y]代入,-2
  ◆変数の操作:[0167:位置調整Y]代入,-16
  ◆
 :分岐終了
 ◆
:分岐終了
◆条件分岐:変数[0163:ずらす回数]が1以上<画面のスクロールに合わせて弾丸の表示位置移動
 ◆変数の操作:[0163:ずらす回数]減算,1
 ◆変数の操作:[0041〜0043]加算,変数[0164]の値<左右のずれを調整する
 ◆変数の操作:[0051〜0053]加算,変数[0165]の値<上下のずれを調整する
 ◆変数の操作:[0166:位置調整X]減算,変数[0164]の値
 ◆変数の操作:[0167:位置調整Y]減算,変数[0165]の値
 ◆
:分岐終了
◆変数の操作:[0169:画面スクロールX+]代入,主人公のX座標
◆変数の操作:[0170:画面スクロールY+]代入,主人公のY座標
◆変数の操作:[0169:画面スクロールX+]減算,9
◆変数の操作:[0170:画面スクロールY+]減算,7
◆変数の操作:[0169:画面スクロールX+]加算,変数[0171]の値<マップサイズXを加算
◆変数の操作:[0170:画面スクロールY+]加算,変数[0172]の値<マップサイズYを加算
◆変数の操作:[0169〜0170]乗算,16
◆変数の操作:[0169:画面スクロールX+]加算,変数[0166]の値
◆変数の操作:[0170:画面スクロールY+]加算,変数[0167]の値

◆注釈:------------------------------------------------------------
:  :弾丸移動
:  :
 
◆変数の操作:[0002:移動距離]代入,20
◆変数の操作:[0021〜0033]加算,1
◆条件分岐:スイッチ[0002:弾丸移動中01]がON(オプション:ON)
 ◆条件分岐:変数[0031:弾丸移動量01]がV[0002]以上
  ◆スイッチの操作:[0002:弾丸移動中01]をOFFにする
  ◆
 :分岐終了
 ◆変数の操作:[0041:弾丸01X]加算,変数[0061]の値
 ◆変数の操作:[0051:弾丸01Y]加算,変数[0071]の値
 ◆ピクチャーの移動:1,(V[0041],V[0051]),0.0秒(透明度:0%)
 ◆変数の操作:[0005:X座標]代入,変数[0041]の値
 ◆変数の操作:[0006:Y座標]代入,変数[0051]の値
 ◆変数の操作:[0005:X座標]加算,変数[0169]の値
 ◆変数の操作:[0006:Y座標]加算,変数[0170]の値
 ◆変数の操作:[0005〜0006]除算,16
 ◆変数の操作:[0005:X座標]加算,変数[0171]の値<マップサイズXを加算
 ◆変数の操作:[0006:Y座標]加算,変数[0172]の値<マップサイズYを加算
 ◆変数の操作:[0005:X座標]剰余,変数[0171]の値<マップサイズXで剰余
 ◆変数の操作:[0006:Y座標]剰余,変数[0172]の値<マップサイズYを剰余
 ◆
〜必要に応じて、地形ID取得などを変数0005番、変数0006番を使って設定〜
 ◆
:それ以外の場合
 ◆ピクチャーの移動:1,(160,120),0.0秒(透明度:100%)
 ◆
:分岐終了
◆条件分岐:スイッチ[0003:弾丸移動中02]がON(オプション:ON)
 ◆条件分岐:変数[0032:弾丸移動量02]がV[0002]以上
  ◆スイッチの操作:[0003:弾丸移動中02]をOFFにする
  ◆
 :分岐終了
 ◆変数の操作:[0042:弾丸02X]加算,変数[0062]の値
 ◆変数の操作:[0052:弾丸02Y]加算,変数[0072]の値
 ◆ピクチャーの移動:2,(V[0042],V[0052]),0.0秒(透明度:0%)
 ◆変数の操作:[0005:X座標]代入,変数[0042]の値
 ◆変数の操作:[0006:Y座標]代入,変数[0052]の値
 ◆変数の操作:[0005:X座標]加算,変数[0169]の値
 ◆変数の操作:[0006:Y座標]加算,変数[0170]の値
 ◆変数の操作:[0005〜0006]除算,16
 ◆変数の操作:[0005:X座標]加算,変数[0171]の値
 ◆変数の操作:[0006:Y座標]加算,変数[0172]の値
 ◆変数の操作:[0005:X座標]剰余,変数[0171]の値
 ◆変数の操作:[0006:Y座標]剰余,変数[0172]の値
 ◆
〜必要に応じて、地形ID取得などを変数0005番、変数0006番を使って設定〜
 ◆
:それ以外の場合
 ◆ピクチャーの移動:2,(160,120),0.0秒(透明度:100%)
 ◆
:分岐終了
◆条件分岐:スイッチ[0004:弾丸移動中03]がON(オプション:ON)
 ◆条件分岐:変数[0033:弾丸移動量03]がV[0002]以上
  ◆スイッチの操作:[0004:弾丸移動中03]をOFFにする
  ◆
 :分岐終了
 ◆変数の操作:[0043:弾丸03X]加算,変数[0063]の値
 ◆変数の操作:[0053:弾丸03Y]加算,変数[0073]の値
 ◆ピクチャーの移動:3,(V[0043],V[0053]),0.0秒(透明度:0%)
 ◆変数の操作:[0005:X座標]代入,変数[0043]の値
 ◆変数の操作:[0006:Y座標]代入,変数[0053]の値
 ◆変数の操作:[0005:X座標]加算,変数[0169]の値
 ◆変数の操作:[0006:Y座標]加算,変数[0170]の値
 ◆変数の操作:[0005〜0006]除算,16
 ◆変数の操作:[0005:X座標]加算,変数[0171]の値
 ◆変数の操作:[0006:Y座標]加算,変数[0172]の値
 ◆変数の操作:[0005:X座標]剰余,変数[0171]の値
 ◆変数の操作:[0006:Y座標]剰余,変数[0172]の値
 ◆
〜必要に応じて、地形ID取得などを変数0005番、変数0006番を使って設定〜
 ◆
:それ以外の場合
 ◆ピクチャーの移動:3,(160,120),0.0秒(透明度:100%)
 ◆
:分岐終了
◆指定ラベルへ飛ぶ:1番




☆補足
弾丸処理コモンイベントに設定している場合で、
マップによって、ループなし画面スクロールのマップと、
ループあり画面スクロールのマップがある時には、
出現条件スイッチのスイッチ番号を変える事で、
マップに合わせてコモンイベントを使い分ける事ができます。



主人公に対する「向き固定」は設定しないでください。



ピクチャー弾丸のページ
基礎ページ まずはこのページの設定を行ってください。
当たり判定の処理を追加する 敵キャラなどのマップイベントの当たり判定を追加します。
壁の当たり判定を追加する 弾丸が壁を貫通しないようにします。
画面スクロールに対応させる 固定画面(横20×縦15マス+マップループ無し)では無い場合は、
このページの設定が必要です。
敵も弾丸発射 敵も弾丸を撃つようにします。
※先に当たり判定の処理を追加するを設定してください。
監視イベントを追加 敵の視野内に入ると主人公に近づくようにします。
※先に当たり判定の処理を追加するを設定してください。
 

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