전투

횡스크롤형식의 스크립트

by 백호 posted Feb 21, 2009
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄
#########################
#하늘을날아 #################
#########################
#퍼온것이다~

#==============================================================================
# □ カスタマイズポイント
#==============================================================================
class XRXS50
  #
  # Action-Maps を稼動させるマップIDの配列
  #
  ENABLE_FULL_ACTY_MAPS = [1, 2]
  #
  # 「斜め降下」
  #
  ENABLE_SLIDE_DESCENT = true
  #
  # 向きジャンプ(true  : 向いている方向へジャンプ。
  #              false : キーが押されている方向へジャンプ。)
  #
  JUMP_AS_KEY = false
end
#==============================================================================
# ■ Game_Player
#==============================================================================
class Game_Player < Game_Character
  #--------------------------------------------------------------------------
  # ○ 公開インスタンス変数
  #--------------------------------------------------------------------------
  # 既存
  attr_writer  :direction_fix
  attr_accessor :walk_anime
  # 新規
  attr_accessor :now_jumps
  attr_writer  :xrxs50_direction_sidefix
  #--------------------------------------------------------------------------
  # ○ 最大ジャンプ回数
  #--------------------------------------------------------------------------
  def max_jumps
    return 1
  end
  #--------------------------------------------------------------------------
  # ● 左を向く
  #--------------------------------------------------------------------------
  alias xrxs50_turn_left turn_left
  def turn_left
    if @xrxs50_direction_sidefix
      @direction = 4
    else
      xrxs50_turn_left
    end
  end
  #--------------------------------------------------------------------------
  # ● 右を向く
  #--------------------------------------------------------------------------
  alias xrxs50_turn_right turn_right
  def turn_right
    if @xrxs50_direction_sidefix
      @direction = 6
    else
      xrxs50_turn_right
    end
  end
end
#==============================================================================
# ■ Scene_Map
#==============================================================================
class Scene_Map
  #--------------------------------------------------------------------------
  # ● メイン処理
  #--------------------------------------------------------------------------
  alias xrxs50_main main
  def main
    # チェック
    xrxs50_enable_check
    # 呼び戻す
    xrxs50_main
  end
  #--------------------------------------------------------------------------
  # ● フレーム更新
  #--------------------------------------------------------------------------
  alias xrxs50_update update
  def update
    # 呼び戻す
    xrxs50_update
    # フレーム更新 (座標系更新)
    if @xrxs50_enable
      update_coordinates
    end
  end
  #--------------------------------------------------------------------------
  # ○ フレーム更新 (座標系更新)
  #--------------------------------------------------------------------------
  def update_coordinates
    if $game_player.passable?($game_player.x,$game_player.y,2)
      unless $game_player.moving?
        if XRXS50::ENABLE_SLIDE_DESCENT and
          Input.press?(Input::RIGHT) and
          $game_player.passable?($game_player.x,$game_player.y+1,6)
          $game_player.move_lower_right
        elsif XRXS50::ENABLE_SLIDE_DESCENT and
              Input.press?(Input::LEFT) and
              $game_player.passable?($game_player.x,$game_player.y+1,4)
          $game_player.move_lower_left
        else
          $game_player.move_down
        end
      end
    else
      $game_player.move_down
      $game_player.walk_anime = true unless $game_player.walk_anime
      $game_player.now_jumps  = 0
      if Input.trigger?(Input::X) and
        $game_player.now_jumps < $game_player.max_jumps
        if XRXS50::JUMP_AS_KEY
          direction = $game_player.direction == 4 ? -1 : 1
        else
          if Input.press?(Input::RIGHT)
            direction = 1
          elsif Input.press?(Input::LEFT)
            direction = -1
          else
            direction = 0
          end
        end
        $game_player.jump(direction, -2)
        $game_player.now_jumps += 1
        $game_player.walk_anime = false
      end
    end
  end
  #--------------------------------------------------------------------------
  # ● プレイヤーの場所移動
  #--------------------------------------------------------------------------
  alias xrxs50_transfer_player transfer_player
  def transfer_player
    # 呼び戻す
    xrxs50_transfer_player
    # チェック
    xrxs50_enable_check
  end
  #--------------------------------------------------------------------------
  # ○ XRXS50 が稼動するか判定
  #--------------------------------------------------------------------------
  def xrxs50_enable_check
    if XRXS50::ENABLE_FULL_ACTY_MAPS.include?($game_map.map_id)
      $game_player.now_jumps = 0 if $game_player.now_jumps.nil?
      @xrxs50_enable = true
      $game_player.direction_fix = true
      $game_player.xrxs50_direction_sidefix = true
    else
      @xrxs50_enable = false
      $game_player.direction_fix = false
      $game_player.xrxs50_direction_sidefix = false
    end
  end
end
#점프키 a