RPGツクール2000/自作戦闘【サイトトップへ戻る】
ピクチャー放物線移動処理
■画面スクロール対応
(更新:2020/08/08)


画面スクロールに対応できるように改良します。


ショートカット
■スイッチ・変数の一覧
■マップイベント「マップ右下」を設定
■コモンイベントの設定に関して
■基礎ページを改良
■当たり判定「イベントID」を改良
■高低差を改良

このページは続きとなっているページです
制作の始めは基礎ページから行ってください。
【ピクチャー放物線移動処理のページを開く】


  
■スイッチ・変数の一覧

使用するスイッチ・変数は↓をクリックして確認してください。
【スイッチ・変数の一覧表を別ウィンドウで表示する】

スイッチ・変数の一覧はピクチャー放物線移動処理の各ページで共有しています。
既にピクチャー放物線移動処理のスイッチ・変数の一覧画面を開いている場合は、
新たに開く必要はありません。


▲トップへ戻る▲


  
■マップイベント「マップ右下」を設定

マップの右下にマップイベント「マップ右下」を設定してください。



このマップイベント「マップ右下」は、画面スクロールのスクロール状態を調べる時に使います。

処理としては、まずこのイベントの画面位置を変数に読み取ります。
そして60分の1秒後(ウェイト:0.0秒後)にもう一度このイベントの画面位置を読み取り、
その誤差によって画面スクロールの移動量を算出します。



スイッチ0041番0042番マップの設定にて、
マップのループを設定している場合はONの設定を行ってください。

ループを行っていない場合は、スイッチの操作を設定した上でOFFの設定を行ってください。



■マップイベント「マップ右下」

▼1ページ目

イベント出現条件:なし
イベント開始条件:定期的に並列処理する
グラフィック:透明

◆変数の操作:[0043:マップサイズ:画面X]代入,マップ右下のX座標
◆変数の操作:[0044:マップサイズ:画面Y]代入,マップ右下のY座標
◆変数の操作:[0043〜0044]加算,1
◆変数の操作:[0043〜0044]乗算,16
◆スイッチの操作:[0041:ループあり:横]をONにする<マップの横ループを設定しているのでON
◆スイッチの操作:[0042:ループあり:縦]をONにする<マップの縦ループを設定しているのでON
◆イベントの一時消去


  
■コモンイベントの設定に関して

コモンイベントの設定は、
当たり判定などを設定しているかどうかによって、微妙に設定方法が異なります。

現在の設定状況に合わせて該当する記事をご覧ください。

▼設定状況名をクリックすると、改良方法が書かれた所へジャンプします。
設定状況
基礎
飛距離:武器
飛距離:攻撃力
飛距離:溜め押し
当たり判定:イベントID
当たり判定:画面位置
高低差(壁)の設定


▲トップへ戻る▲


  
■基礎ページを改良

基礎
飛距離:武器
飛距離:攻撃力
飛距離:溜め押し
当たり判定:画面位置」の設定例です。

黄色になっている部分を追加設定してください。

この色の部分は、基礎のページの設定なので、
飛距離や当たり判定のページとは異なる設定になっていますが、
この色の部分は無視して黄色の部分のみを追加設定してください。

■コモンイベント「放物線移動:キー処理」

イベント開始条件:定期的に並列処理する

◆ラベルの設定:1番
◆キー入力の処理:[0001:キー入力](決定/オプション:OFF)
◆ウェイト:0.0秒
◆条件分岐:変数[0001:キー入力]が0
 ◆キー入力の処理:[0001:キー入力](決定/オプション:OFF)
 ◆
:分岐終了
◆注釈:----------------------------
:  :初期設定
:  : 

◆変数の操作:[0002:現在のマップID]代入,主人公のマップID
◆条件分岐:変数[0003:前のマップID]がV[0002]以外
 ◆変数の操作:[0003:前のマップID]代入,主人公のマップID
 ◆ピクチャーの表示:1,ボールの影,(160,120)(透明度:100%)
 ◆ピクチャーの表示:11,ボール,(160,120)(透明度:100%)
 ◆変数の操作:[0004:飛距離(マス単位)]代入,3
 ◆変数の操作:[0005:最大の高さ(ドット単位)]代入,32
 ◆変数の操作:[0006:高さ%合計]代入,78
 ◆ウェイト:0.1秒
 ◆
:分岐終了
◆注釈:----------------------------
:  :ボールを発射
:  : 

◆条件分岐:変数[0001:キー入力]が0
 ◆スイッチの操作:[0001:決定キー押し続け]をOFFにする
 ◆指定ラベルへ飛ぶ:1番
 ◆
:分岐終了
◆条件分岐:スイッチ[0001:決定キー押し続け]がON
 ◆指定ラベルへ飛ぶ:1番
 ◆
:分岐終了
◆スイッチの操作:[0001:決定キー押し続け]をONにする
◆条件分岐:スイッチ[0011:移動中:ボール01]がOFF
 ◆変数の操作:[0101:ボール01:現在位置X]代入,主人公の画面X
 ◆変数の操作:[0102:ボール01:現在位置Y]代入,主人公の画面Y
 ◆変数の操作:[0102:ボール01:現在位置Y]減算,8
 ◆変数の操作:[0103:ボール01:移動方向]代入,主人公の向き
 ◆変数の操作:[0104:ボール01:最大の高さ]代入,変数[0005]の値
 ◆変数の操作:[0106:ボール01:高さ%合計]代入,変数[0006]の値
 ◆変数の操作:[0107:ボール01:高さ%±]代入,変数[0004]の値
 ◆変数の操作:[0107:ボール01:高さ%±]乗算,4
 ◆変数の操作:[0108:ボール01:現在高さ%]代入,0
 ◆変数の操作:[0112:ボール01:画面位置X]代入,マップ右下の画面X
 ◆変数の操作:[0113:ボール01:画面位置Y]代入,マップ右下の画面Y

 ◆スイッチの操作:[0011:移動中:ボール01]をONにする
 ◆効果音の演奏:風7
 ◆
:分岐終了
◆指定ラベルへ飛ぶ:1番

■コモンイベント「放物線移動:ボール移動」

イベント開始条件:定期的に並列処理する

◆ラベルの設定:10番
◆ウェイト:0.0秒
◆変数の操作:[0002:現在のマップID]代入,主人公のマップID
◆条件分岐:変数[0003:前のマップID]がV[0002]以外
 ◆スイッチの操作:[0011:移動中:ボール01]をOFFにする
 ◆
:分岐終了
◆注釈:------------------------------------------------------------
:  :ボール1の移動処理
:  : 

◆条件分岐:スイッチ[0011:移動中:ボール01]がON(オプション:ON)
 ◆注釈:----------------------------
 :  :ボールを2ピクセル移動
 :  : 

 ◆条件分岐:変数[0103:ボール01:移動方向]が2
  ◆変数の操作:[0102:ボール01:現在位置Y]加算,2
  ◆
 :分岐終了
 ◆条件分岐:変数[0103:ボール01:移動方向]が4
  ◆変数の操作:[0101:ボール01:現在位置X]減算,2
  ◆
 :分岐終了
 ◆条件分岐:変数[0103:ボール01:移動方向]が6
  ◆変数の操作:[0101:ボール01:現在位置X]加算,2
  ◆
 :分岐終了
 ◆条件分岐:変数[0103:ボール01:移動方向]が8
  ◆変数の操作:[0102:ボール01:現在位置Y]減算,2
  ◆
 :分岐終了
 ◆注釈:----------------------------<追加する
 :  :画面スクロール
 :  : 

 ◆変数の操作:[0112:ボール01:画面位置X]減算,マップ右下の画面X<減算して画面のずれを出す
 ◆変数の操作:[0113:ボール01:画面位置Y]減算,マップ右下の画面Y<減算して画面のずれを出す
 ◆条件分岐:変数[0112:ボール01:画面位置X]が100以上(オプション:ON)<100以上のずれがある時
  ◆変数の操作:[0112:ボール01:画面位置X]減算,変数[0043]の値<マップの横ピクセル数を減算
  ◆
 :それ以外の場合<100未満のずれの時
  ◆条件分岐:変数[0112:ボール01:画面位置X]が-100以下<-100以下のずれの時
   ◆変数の操作:[0112:ボール01:画面位置X]加算,変数[0043]の値<マップの横ピクセル数を加算
   ◆
  :分岐終了
  ◆
 :分岐終了
 ◆条件分岐:変数[0113:ボール01:画面位置Y]が100以上(オプション:ON)<100以上のずれがある時
  ◆変数の操作:[0113:ボール01:画面位置Y]減算,変数[0044]の値<マップの縦ピクセル数を減算
  ◆
 :それ以外の場合<-100以下のずれの時
  ◆条件分岐:変数[0113:ボール01:画面位置Y]が-100以下
   ◆変数の操作:[0113:ボール01:画面位置Y]加算,変数[0044]の値<マップの縦ピクセル数を加算
   ◆
  :分岐終了
  ◆
 :分岐終了
 ◆変数の操作:[0101:ボール01:現在位置X]減算,変数[0112]の値<影の位置を画面のずれに合わせる
 ◆変数の操作:[0102:ボール01:現在位置Y]減算,変数[0113]の値<影の位置を画面のずれに合わせる
 ◆変数の操作:[0112:ボール01:画面位置X]代入,マップ右下の画面X<最新のイベント位置を代入
 ◆変数の操作:[0113:ボール01:画面位置Y]代入,マップ右下の画面Y<最新のイベント位置を代入
 ◆条件分岐:スイッチ[0041:ループあり:横]がON<横のループ設定がある時
  ◆変数の操作:[0101:ボール01:現在位置X]加算,変数[0043]の値<マップの横ピクセル数を加算
  ◆変数の操作:[0101:ボール01:現在位置X]剰余,変数[0043]の値<マップの横ピクセル数で剰余
  ◆
 :分岐終了
 ◆条件分岐:スイッチ[0042:ループあり:縦]がON<縦のループ設定がある時
  ◆変数の操作:[0102:ボール01:現在位置Y]加算,変数[0044]の値<マップの縦ピクセル数を加算
  ◆変数の操作:[0102:ボール01:現在位置Y]剰余,変数[0044]の値<マップの縦ピクセル数で剰余
  ◆
 :分岐終了

 ◆注釈:----------------------------
 :  :ボールの高さを変更
 :  : 

 ◆変数の操作:[0108:ボール01:現在高さ%]減算,変数[0107]の値
 ◆変数の操作:[0010:ボールのY表示位置]代入,変数[0108]の値
 ◆変数の操作:[0010:ボールのY表示位置]乗算,変数[0104]の値
 ◆変数の操作:[0010:ボールのY表示位置]除算,変数[0106]の値
 ◆変数の操作:[0010:ボールのY表示位置]加算,変数[0102]の値
 ◆注釈:----------------------------
 :  :ボールの表示
 :  : 

 ◆ピクチャーの移動:1,(V[0101],V[0102]),0.0秒(透明度:60%)
 ◆ピクチャーの移動:11,(V[0101],V[0010]),0.0秒(透明度:0%)
 ◆注釈:----------------------------
 ◆変数の操作:[0107:ボール01:高さ%±]減算,1
 ◆条件分岐:変数[0108:ボール01:現在高さ%]が0以上
  ◆注釈:----------------------------
  :  :ボールが着弾(ボールを消す)
  :  : 

  ◆効果音の演奏:打撃6
  ◆スイッチの操作:[0011:移動中:ボール01]をOFFにする
  ◆
 :分岐終了
 ◆
:それ以外の場合
 ◆ピクチャーの移動:1,(160,120),0.0秒(透明度:100%)
 ◆ピクチャーの移動:11,(160,120),0.0秒(透明度:100%)
 ◆
:分岐終了
◆指定ラベルへ飛ぶ:10番


▲トップへ戻る▲


  
■当たり判定「イベントID」を改良

黄色になっている部分を追加設定してください。

■コモンイベント「放物線移動:キー処理」

イベント開始条件:定期的に並列処理する

◆ラベルの設定:1番
◆キー入力の処理:[0001:キー入力](決定/オプション:OFF)
◆ウェイト:0.0秒
◆条件分岐:変数[0001:キー入力]が0
 ◆キー入力の処理:[0001:キー入力](決定/オプション:OFF)
 ◆
:分岐終了
◆注釈:----------------------------
:  :初期設定
:  : 

◆変数の操作:[0002:現在のマップID]代入,主人公のマップID
◆条件分岐:変数[0003:前のマップID]がV[0002]以外
 ◆変数の操作:[0003:前のマップID]代入,主人公のマップID
 ◆ピクチャーの表示:1,ボールの影,(160,120)(透明度:100%)
 ◆ピクチャーの表示:11,ボール,(160,120)(透明度:100%)
 ◆変数の操作:[0004:飛距離(マス単位)]代入,3
 ◆変数の操作:[0005:最大の高さ(ドット単位)]代入,32
 ◆変数の操作:[0006:高さ%合計]代入,78
 ◆ウェイト:0.1秒
 ◆
:分岐終了
◆注釈:----------------------------
:  :ボールを発射
:  : 

◆条件分岐:変数[0001:キー入力]が0
 ◆スイッチの操作:[0001:決定キー押し続け]をOFFにする
 ◆指定ラベルへ飛ぶ:1番
 ◆
:分岐終了
◆条件分岐:スイッチ[0001:決定キー押し続け]がON
 ◆指定ラベルへ飛ぶ:1番
 ◆
:分岐終了
◆スイッチの操作:[0001:決定キー押し続け]をONにする
◆条件分岐:スイッチ[0011:移動中:ボール01]がOFF
 ◆変数の操作:[0101:ボール01:現在位置X]代入,主人公の画面X
 ◆変数の操作:[0102:ボール01:現在位置Y]代入,主人公の画面Y
 ◆変数の操作:[0102:ボール01:現在位置Y]減算,8
 ◆変数の操作:[0103:ボール01:移動方向]代入,主人公の向き
 ◆変数の操作:[0104:ボール01:最大の高さ]代入,変数[0005]の値
 ◆変数の操作:[0106:ボール01:高さ%合計]代入,変数[0006]の値
 ◆変数の操作:[0107:ボール01:高さ%±]代入,変数[0004]の値
 ◆変数の操作:[0107:ボール01:高さ%±]乗算,4
 ◆変数の操作:[0108:ボール01:現在高さ%]代入,0
 ◆変数の操作:[0112:ボール01:画面位置X]代入,マップ右下の画面X
 ◆変数の操作:[0113:ボール01:画面位置Y]代入,マップ右下の画面Y

 ◆スイッチの操作:[0011:移動中:ボール01]をONにする
 ◆効果音の演奏:風7
 ◆
:分岐終了
◆指定ラベルへ飛ぶ:1番

■コモンイベント「放物線移動:ボール移動」

イベント開始条件:定期的に並列処理する

◆ラベルの設定:10番
◆ウェイト:0.0秒
◆変数の操作:[0002:現在のマップID]代入,主人公のマップID
◆条件分岐:変数[0003:前のマップID]がV[0002]以外
 ◆スイッチの操作:[0011:移動中:ボール01]をOFFにする
 ◆
:分岐終了
◆注釈:------------------------------------------------------------
:  :ボール1の移動処理
:  : 

◆条件分岐:スイッチ[0011:移動中:ボール01]がON(オプション:ON)
 ◆注釈:----------------------------
 :  :ボールを2ピクセル移動
 :  : 

 ◆条件分岐:変数[0103:ボール01:移動方向]が2
  ◆変数の操作:[0102:ボール01:現在位置Y]加算,2
  ◆
 :分岐終了
 ◆条件分岐:変数[0103:ボール01:移動方向]が4
  ◆変数の操作:[0101:ボール01:現在位置X]減算,2
  ◆
 :分岐終了
 ◆条件分岐:変数[0103:ボール01:移動方向]が6
  ◆変数の操作:[0101:ボール01:現在位置X]加算,2
  ◆
 :分岐終了
 ◆条件分岐:変数[0103:ボール01:移動方向]が8
  ◆変数の操作:[0102:ボール01:現在位置Y]減算,2
  ◆
 :分岐終了
 ◆注釈:----------------------------<追加する
 :  :画面スクロール
 :  : 

 ◆変数の操作:[0112:ボール01:画面位置X]減算,マップ右下の画面X<減算して画面のずれを出す
 ◆変数の操作:[0113:ボール01:画面位置Y]減算,マップ右下の画面Y<減算して画面のずれを出す
 ◆条件分岐:変数[0112:ボール01:画面位置X]が100以上(オプション:ON)<100以上のずれがある時
  ◆変数の操作:[0112:ボール01:画面位置X]減算,変数[0043]の値<マップの横ピクセル数を減算
  ◆
 :それ以外の場合<100未満のずれの時
  ◆条件分岐:変数[0112:ボール01:画面位置X]が-100以下<-100以下のずれの時
   ◆変数の操作:[0112:ボール01:画面位置X]加算,変数[0043]の値<マップの横ピクセル数を加算
   ◆
  :分岐終了
  ◆
 :分岐終了
 ◆条件分岐:変数[0113:ボール01:画面位置Y]が100以上(オプション:ON)<100以上のずれがある時
  ◆変数の操作:[0113:ボール01:画面位置Y]減算,変数[0044]の値<マップの縦ピクセル数を減算
  ◆
 :それ以外の場合<-100以下のずれの時
  ◆条件分岐:変数[0113:ボール01:画面位置Y]が-100以下
   ◆変数の操作:[0113:ボール01:画面位置Y]加算,変数[0044]の値<マップの縦ピクセル数を加算
   ◆
  :分岐終了
  ◆
 :分岐終了
 ◆変数の操作:[0101:ボール01:現在位置X]減算,変数[0112]の値<影の位置を画面のずれに合わせる
 ◆変数の操作:[0102:ボール01:現在位置Y]減算,変数[0113]の値<影の位置を画面のずれに合わせる
 ◆変数の操作:[0112:ボール01:画面位置X]代入,マップ右下の画面X<最新のイベント位置を代入
 ◆変数の操作:[0113:ボール01:画面位置Y]代入,マップ右下の画面Y<最新のイベント位置を代入
 ◆条件分岐:スイッチ[0041:ループあり:横]がON<横のループ設定がある時
  ◆変数の操作:[0101:ボール01:現在位置X]加算,変数[0043]の値<マップの横ピクセル数を加算
  ◆変数の操作:[0101:ボール01:現在位置X]剰余,変数[0043]の値<マップの横ピクセル数で剰余
  ◆
 :分岐終了
 ◆条件分岐:スイッチ[0042:ループあり:縦]がON<縦のループ設定がある時
  ◆変数の操作:[0102:ボール01:現在位置Y]加算,変数[0044]の値<マップの縦ピクセル数を加算
  ◆変数の操作:[0102:ボール01:現在位置Y]剰余,変数[0044]の値<マップの縦ピクセル数で剰余
  ◆
 :分岐終了

 ◆注釈:----------------------------
 :  :ボールの高さを変更
 :  : 

 ◆変数の操作:[0108:ボール01:現在高さ%]減算,変数[0107]の値
 ◆変数の操作:[0010:ボールのY表示位置]代入,変数[0108]の値
 ◆変数の操作:[0010:ボールのY表示位置]乗算,変数[0104]の値
 ◆変数の操作:[0010:ボールのY表示位置]除算,変数[0106]の値
 ◆変数の操作:[0010:ボールのY表示位置]加算,変数[0102]の値
 ◆注釈:----------------------------
 :  :ボールの表示
 :  : 

 ◆ピクチャーの移動:1,(V[0101],V[0102]),0.0秒(透明度:60%)
 ◆ピクチャーの移動:11,(V[0101],V[0010]),0.0秒(透明度:0%)
 ◆注釈:----------------------------
 :  :当たり判定
 :  : 

 ◆変数の操作:[0009:ボールの高さ]代入,変数[0010]の値
 ◆変数の操作:[0009:ボールの高さ]減算,変数[0102]の値
 ◆条件分岐:変数[0009:ボールの高さ]が-8以上
  ◆変数の操作:[0011:ボールのX]代入,変数[0101]の値
  ◆変数の操作:[0012:ボールのY]代入,変数[0102]の値
  ◆変数の操作:[0011:ボールのX]減算,マップ右下の画面X
  ◆変数の操作:[0012:ボールのY]減算,マップ右下の画面Y
  ◆変数の操作:[0011:ボールのX]減算,8<マップの右端になるように減算
  ◆変数の操作:[0011:ボールのX]加算,変数[0043]の値<マップの横ピクセル数を加算
  ◆変数の操作:[0012:ボールのY]加算,変数[0044]の値<マップの縦ピクセル数を加算
  ◆条件分岐:スイッチ[0041:ループあり:横]がON<横のループ設定がある時
   ◆変数の操作:[0011:ボールのX]剰余,変数[0043]の値<マップの横ピクセル数で剰余
   ◆
  :分岐終了
  ◆条件分岐:スイッチ[0042:ループあり:縦]がON<縦のループ設定がある時
   ◆変数の操作:[0012:ボールのY]剰余,変数[0044]の値<マップの縦ピクセル数で剰余
   ◆
  :分岐終了

  ◆変数の操作:[0011〜0012]除算,16
  ◆指定位置のイベントID取得:(V[0011],V[0012]),[0013:ID取得]
  ◆条件分岐:変数[0013:ID取得]がV[0041]以上
   ◆スイッチの操作:[0002:当たり確認]をOFFにする
   ◆イベントの呼び出し:V[13][V[14]]
   ◆条件分岐:スイッチ[0002:当たり確認]がON
    ◆指定ラベルへ飛ぶ:11番
    ◆
   :分岐終了
   ◆
  :分岐終了
  ◆
 :分岐終了
 ◆注釈:----------------------------
 ◆変数の操作:[0107:ボール01:高さ%±]減算,1
 ◆条件分岐:変数[0108:ボール01:現在高さ%]が0以上
  ◆注釈:----------------------------
  :  :ボールが着弾(ボールを消す)
  :  : 

  ◆効果音の演奏:打撃6
  ◆ラベルの設定:11番
  ◆スイッチの操作:[0011:移動中:ボール01]をOFFにする
  ◆
 :分岐終了
 ◆
:それ以外の場合
 ◆ピクチャーの移動:1,(160,120),0.0秒(透明度:100%)
 ◆ピクチャーの移動:11,(160,120),0.0秒(透明度:100%)
 ◆
:分岐終了
◆指定ラベルへ飛ぶ:10番


▲トップへ戻る▲


  
■高低差を改良

黄色になっている部分を追加設定してください。

■コモンイベント「放物線移動:キー処理」

イベント開始条件:定期的に並列処理する

◆ラベルの設定:1番
◆キー入力の処理:[0001:キー入力](決定/オプション:OFF)
◆ウェイト:0.0秒
◆条件分岐:変数[0001:キー入力]が0
 ◆キー入力の処理:[0001:キー入力](決定/オプション:OFF)
 ◆
:分岐終了
◆注釈:----------------------------
:  :初期設定
:  : 
◆変数の操作:[0002:現在のマップID]代入,主人公のマップID
◆条件分岐:変数[0003:前のマップID]がV[0002]以外
 ◆変数の操作:[0003:前のマップID]代入,主人公のマップID
 ◆ピクチャーの表示:1,ボールの影,(160,120)(透明度:100%)
 ◆ピクチャーの表示:11,ボール,(160,120)(透明度:100%)
 ◆変数の操作:[0004:飛距離(マス単位)]代入,3
 ◆変数の操作:[0005:最大の高さ(ドット単位)]代入,32
 ◆変数の操作:[0006:高さ%合計]代入,78
 ◆
:分岐終了
◆注釈:----------------------------
:  :ボール発射
:  : 

◆条件分岐:変数[0001:キー入力]が0
 ◆スイッチの操作:[0001:決定キー押し]をOFFにする
 ◆指定ラベルへ飛ぶ:1番
 ◆
:分岐終了
◆条件分岐:スイッチ[0001:決定キー押し続け]がON
 ◆指定ラベルへ飛ぶ:1番
 ◆
:分岐終了
◆スイッチの操作:[0001:決定キー押し]をONにする
◆変数の操作:[0011:ボールのX]代入,主人公のX座標
◆変数の操作:[0012:ボールのY]代入,主人公のY座標
◆指定位置の地形ID取得:(V[0011],V[0012]),[0013:ID取得]
◆変数の操作:[0012:ボールのY]加算,1
◆指定位置の地形ID取得:(V[0011],V[0012]),[0016:ボールの影地形ID]
◆条件分岐:変数[0013:ID取得]がV[0016]より大きい(オプション:ON)
 ◆変数の操作:[0015:ボールの影Y]代入,-16
 ◆
:それ以外の場合
 ◆変数の操作:[0015:ボールの影Y]代入,0
 ◆
:分岐終了
◆条件分岐:スイッチ[0011:移動中:ボール01]がOFF
 ◆変数の操作:[0110:ボール01:高さピクセル]代入,変数[0013]の値
 ◆変数の操作:[0110:ボール01:高さピクセル]乗算,-16
 ◆変数の操作:[0110:ボール01:高さピクセル]加算,16
 ◆変数の操作:[0101:ボール01:現在位置X]代入,主人公の画面X
 ◆変数の操作:[0102:ボール01:現在位置Y]代入,主人公の画面Y
 ◆変数の操作:[0102:ボール01:現在位置Y]減算,変数[0110]の値
 ◆変数の操作:[0102:ボール01:現在位置Y]減算,8
 ◆変数の操作:[0102:ボール01:現在位置Y]加算,変数[0015]の値
 ◆変数の操作:[0103:ボール01:移動方向]代入,主人公の向き
 ◆変数の操作:[0104:ボール01:最大の高さ]代入,変数[0005]の値
 ◆変数の操作:[0106:ボール01:高さ%合計]代入,変数[0006]の値
 ◆変数の操作:[0107:ボール01:高さ%±]代入,変数[0004]の値
 ◆変数の操作:[0107:ボール01:高さ%±]乗算,4
 ◆変数の操作:[0108:ボール01:現在高さ%]代入,0
 ◆変数の操作:[0112:ボール01:画面位置X]代入,マップ右下の画面X
 ◆変数の操作:[0113:ボール01:画面位置Y]代入,マップ右下の画面Y

 ◆スイッチの操作:[0011:移動中:ボール01]をONにする
 ◆効果音の演奏:風7
 ◆
:分岐終了
◆指定ラベルへ飛ぶ:1番

■コモンイベント「放物線移動:ボール移動」

イベント開始条件:定期的に並列処理する

◆ラベルの設定:10番
◆ウェイト:0.0秒
◆変数の操作:[0002:現在のマップID]代入,主人公のマップID
◆条件分岐:変数[0003:前のマップID]がV[0002]以外
 ◆スイッチの操作:[0011:移動中:ボール01]をOFFにする
 ◆
:分岐終了
◆注釈:------------------------------------------------------------
:  :ボール1の移動処理
:  : 

◆条件分岐:スイッチ[0011:移動中:ボール01]がON(オプション:ON)
 ◆注釈:----------------------------
 :  :ボールを2ピクセル移動
 :  : 

 ◆条件分岐:変数[0103:ボール01:移動方向]が2
  ◆変数の操作:[0102:ボール01:現在位置Y]加算,2
  ◆
 :分岐終了
 ◆条件分岐:変数[0103:ボール01:移動方向]が4
  ◆変数の操作:[0101:ボール01:現在位置X]減算,2
  ◆
 :分岐終了
 ◆条件分岐:変数[0103:ボール01:移動方向]が6
  ◆変数の操作:[0101:ボール01:現在位置X]加算,2
  ◆
 :分岐終了
 ◆条件分岐:変数[0103:ボール01:移動方向]が8
  ◆変数の操作:[0102:ボール01:現在位置Y]減算,2
  ◆
 :分岐終了
 ◆注釈:----------------------------<追加する
 :  :画面スクロール
 :  : 

 ◆変数の操作:[0112:ボール01:画面位置X]減算,マップ右下の画面X<減算して画面のずれを出す
 ◆変数の操作:[0113:ボール01:画面位置Y]減算,マップ右下の画面Y<減算して画面のずれを出す
 ◆条件分岐:変数[0112:ボール01:画面位置X]が100以上(オプション:ON)<100以上のずれがある時
  ◆変数の操作:[0112:ボール01:画面位置X]減算,変数[0043]の値<マップの横ピクセル数を減算
  ◆
 :それ以外の場合<100未満のずれの時
  ◆条件分岐:変数[0112:ボール01:画面位置X]が-100以下<-100以下のずれの時
   ◆変数の操作:[0112:ボール01:画面位置X]加算,変数[0043]の値<マップの横ピクセル数を加算
   ◆
  :分岐終了
  ◆
 :分岐終了
 ◆条件分岐:変数[0113:ボール01:画面位置Y]が100以上(オプション:ON)<100以上のずれがある時
  ◆変数の操作:[0113:ボール01:画面位置Y]減算,変数[0044]の値<マップの縦ピクセル数を減算
  ◆
 :それ以外の場合<-100以下のずれの時
  ◆条件分岐:変数[0113:ボール01:画面位置Y]が-100以下
   ◆変数の操作:[0113:ボール01:画面位置Y]加算,変数[0044]の値<マップの縦ピクセル数を加算
   ◆
  :分岐終了
  ◆
 :分岐終了
 ◆変数の操作:[0101:ボール01:現在位置X]減算,変数[0112]の値<影の位置を画面のずれに合わせる
 ◆変数の操作:[0102:ボール01:現在位置Y]減算,変数[0113]の値<影の位置を画面のずれに合わせる
 ◆変数の操作:[0112:ボール01:画面位置X]代入,マップ右下の画面X<最新のイベント位置を代入
 ◆変数の操作:[0113:ボール01:画面位置Y]代入,マップ右下の画面Y<最新のイベント位置を代入
 ◆条件分岐:スイッチ[0041:ループあり:横]がON<横のループ設定がある時
  ◆変数の操作:[0101:ボール01:現在位置X]加算,変数[0043]の値<マップの横ピクセル数を加算
  ◆変数の操作:[0101:ボール01:現在位置X]剰余,変数[0043]の値<マップの横ピクセル数で剰余
  ◆
 :分岐終了
 ◆条件分岐:スイッチ[0042:ループあり:縦]がON<縦のループ設定がある時
  ◆変数の操作:[0102:ボール01:現在位置Y]加算,変数[0044]の値<マップの縦ピクセル数を加算
  ◆変数の操作:[0102:ボール01:現在位置Y]剰余,変数[0044]の値<マップの縦ピクセル数で剰余
  ◆
 :分岐終了

 ◆注釈:----------------------------
 :  :高低差チェック
 :  : 

 ◆変数の操作:[0011:ボールのX]代入,変数[0101]の値
 ◆変数の操作:[0012:ボールのY]代入,変数[0102]の値
 ◆変数の操作:[0011:ボールのX]減算,マップ右下の画面X
 ◆変数の操作:[0012:ボールのY]減算,マップ右下の画面Y
 ◆変数の操作:[0011:ボールのX]減算,8<マップの右端になるように減算
 ◆条件分岐:スイッチ[0041:ループあり:横]がON<横のループ設定がある時
  ◆変数の操作:[0011:ボールのX]加算,変数[0043]の値<マップの横ピクセル数を加算
  ◆変数の操作:[0011:ボールのX]剰余,変数[0043]の値<マップの横ピクセル数で剰余
  ◆
 :分岐終了
 ◆条件分岐:スイッチ[0042:ループあり:縦]がON<縦のループ設定がある時
  ◆変数の操作:[0012:ボールのY]加算,変数[0044]の値<マップの縦ピクセル数を加算
  ◆変数の操作:[0012:ボールのY]剰余,変数[0044]の値<マップの縦ピクセル数で剰余
  ◆
 :分岐終了

 ◆変数の操作:[0011〜0012]除算,16
 ◆指定位置の地形ID取得:(V[0011],V[0012]),[0009:ボールの高さ]
 ◆指定位置の地形ID取得:(V[0011],V[0012]),[0016:ボールの影地形ID]
 ◆変数の操作:[0009:ボールの高さ]乗算,-16
 ◆変数の操作:[0009:ボールの高さ]加算,16
 ◆変数の操作:[0015:ボールの影Y]代入,変数[0102]の値
 ◆変数の操作:[0015:ボールの影Y]加算,変数[0009]の値
 ◆変数の操作:[0012:ボールのY]代入,変数[0015]の値
 ◆変数の操作:[0012:ボールのY]減算,マップ右下の画面Y
 ◆条件分岐:スイッチ[0042:ループあり:縦]がON<縦のループ設定がある時
  ◆変数の操作:[0012:ボールのY]加算,変数[0044]の値<マップの縦ピクセル数を加算
  ◆変数の操作:[0012:ボールのY]剰余,変数[0044]の値<マップの縦ピクセル数で剰余
  ◆
 :分岐終了

 ◆変数の操作:[0012:ボールのY]除算,16
 ◆指定位置の地形ID取得:(V[0011],V[0012]),[0017:ボールの影地形ID2]
 ◆注釈:----------------------------
 :  :ボールの高さを変更
 :  : 

 ◆変数の操作:[0108:ボール01:現在高さ%]減算,変数[0107]の値
 ◆変数の操作:[0010:ボールの表示位置Y]代入,変数[0108]の値
 ◆変数の操作:[0010:ボールの表示位置Y]乗算,変数[0104]の値
 ◆変数の操作:[0010:ボールの表示位置Y]除算,変数[0106]の値
 ◆変数の操作:[0010:ボールの表示位置Y]加算,変数[0102]の値
 ◆変数の操作:[0010:ボールのY表示位置]加算,変数[0110]の値
 ◆注釈:----------------------------
 :  :ボールの表示
 :  : 

 ◆条件分岐:変数[0017:ボールの影地形ID2]がV[0016]以上(オプション:0%)
  ◆条件分岐:変数[0015:ボールの影Y]がV[0010]以上(オプション:0%)
   ◆ピクチャーの移動:1,(V[0101],V[0015]),0.0秒(透明度:60%)
   ◆
  :それ以外の場合
   ◆ピクチャーの移動:1,(160,120),0.0秒(透明度:100%)
   ◆
  :分岐終了
  ◆
 :それ以外の場合
  ◆ピクチャーの移動:1,(160,120),0.0秒(透明度:100%)
  ◆
 :分岐終了
 ◆条件分岐:変数[0010:ボールのY表示位置]がV[0015]以上(オプション:0%)
  ◆変数の操作:[0010:ボールのY表示位置]代入,変数[0015]の値
  ◆ピクチャーの移動:11,(160,120),0.0秒(透明度:100%)
  ◆
 :それ以外の場合
  ◆ピクチャーの移動:11,(V[0101],V[0010]),0.0秒(透明度:0%)
  ◆
 :分岐終了
 ◆注釈:----------------------------
 ◆変数の操作:[0107:ボール01:高さ%±]減算,1
 ◆条件分岐:変数[0010:ボールのY表示位置]がV[0015]以上
  ◆注釈:----------------------------
  :  :ボールが着弾(ボールを消す)
  :  : 

  ◆効果音の演奏:打撃6
  ◆スイッチの操作:[0011:移動中:ボール01]をOFFにする
  ◆
 :分岐終了
 ◆
:それ以外の場合
 ◆ピクチャーの移動:1,(160,120),0.0秒(透明度:100%)
 ◆ピクチャーの移動:11,(160,120),0.0秒(透明度:100%)
 ◆
:分岐終了
◆指定ラベルへ飛ぶ:10番


▲トップへ戻る▲



放物線移動処理のページ
基礎ページ まずはこのページの設定を行ってください。
飛距離を変える 装備状態や攻撃力などによって飛距離を変えます。
敵への当たり判定 敵(マップイベント)にボールが当たるようにします。
高低差(壁)の設定 高低差の設定を追加します。
画面スクロール対応 画面スクロールに対応できるように改良します。
 

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