#============================================================================== # 画像のジャンプ #  # 指定した画像をジャンプさせます。 # 移動先の指定ができないので、移動量に関してはいろいろ試してみてください。 #  # 注意点 #  本スクリプトを導入すると、セーブデータの互換がなくなります。 # # 起動方法 #  jamp_img(z,x,h,f) #   z:画像の番号 #   x:1フレームあたりのx軸の移動量 #   h:ジャンプの強さ(初速) #   f:フレーム数 #   #  指定したフレーム数の間放物線を描きます。 #  大きい数字を指定するとジャンプして下に落ちるような演出になります。 #  逆に小さい数字を指定すると、飛び乗ったような軌跡を描きます。 # # 利用規約 #  連絡不要 #  商用可 # 改造可 # 再配布可(無改造の場合はクレジットを消さないでください) # アダルト可 #  利用された際、クレジットはあると喜びます  # GYM # http://gymaterials.jp/ # #============================================================================== # ■ Game_Interpreter #------------------------------------------------------------------------------ #  イベントコマンドを実行するインタプリタです。このクラスは Game_Map クラス、 # Game_Troop クラス、Game_Event クラスの内部で使用されます。 #============================================================================== class Game_Interpreter #-------------------------------------------------------------------------- # ● 画像のジャンプ #   z:画像の番号 #   x:1フレームあたりのx軸の移動量 #   h:ジャンプの強さ(初速) #   f:フレーム数 #-------------------------------------------------------------------------- def jamp_img(z,x,h,f) screen.pictures[z].img_jump(x,h,f) end end #============================================================================== # ■ Game_Picture #------------------------------------------------------------------------------ #  ピクチャを扱うクラスです。このクラスは Game_Pictures クラスの内部で、特定 # の番号のピクチャが必要になったときだけ作成されます。 #============================================================================== class Game_Picture #-------------------------------------------------------------------------- # ● 移動目標の初期化 #-------------------------------------------------------------------------- alias init_target_plus_img_jump init_target def init_target init_target_plus_img_jump @y_prev = 0 # 一つ前の座標。これは毎フレーム更新される。 @jump_x = 0 # 1フレームあたりのx軸移動量 @jump_f = 0 # ジャンプの強さ(初速) @jump_g = 1 # 重力 @jump_count = -1 # ジャンプのフレーム数 end #-------------------------------------------------------------------------- # ● ジャンプ #-------------------------------------------------------------------------- def img_jump(x, h, f) @y_prev = @y # 一つ前の座標。これは毎フレーム更新される。 @jump_x = x # 1フレームあたりのx軸の移動量 @jump_f = h # ジャンプの強さ @jump_count = f @target_y = @y - @jump_f @duration = 1 end #-------------------------------------------------------------------------- # ● ジャンプ中判定 #-------------------------------------------------------------------------- def jumping? @jump_count >= 0 end #-------------------------------------------------------------------------- # ● フレーム更新 #-------------------------------------------------------------------------- alias update_plus_img_jump update def update update_plus_img_jump update_jump end #-------------------------------------------------------------------------- # ● ジャンプ時の更新 #-------------------------------------------------------------------------- def update_jump if jumping? @target_x = @x + @jump_x @target_y = @y + (@y - @y_prev + @jump_g) @y_prev = @y @duration = 1 @jump_count += -1 end end end