Project1

标题: 好久没来,提一个重力脚本的问题 [打印本页]

作者: 小角色    时间: 2008-11-15 16:37
标题: 好久没来,提一个重力脚本的问题
这是部分代码
      case Input.dir8
        when 1
          $ud_ok ? move_lower_left_p : move_left_p
          if $game_variables[3] == 0
           @character_name = "行走.png"
          end
        when 2
#          $ud_ok ? move_down_p : move_down_aaaagq
          move_down_p if $ud_ok
        when 3
         $ud_ok ? move_lower_right_p : move_right_p
          if $game_variables[3] == 0
           @character_name = "行走.png"
          end
        when 4
          move_left_p
          if $game_variables[3] == 0
           @character_name = "行走.png"
          end
        when 6
          move_right_p
          if $game_variables[3] == 0
           @character_name = "行走.png"
          end
        when 7
         $ud_ok ? move_upper_left_p : move_left_p
          if $game_variables[3] == 0
           @character_name = "行走.png"
          end
        when 8
#         $ud_ok ? move_up_p : move_up_aaaagq
         move_up_p if $ud_ok
        when 9
         $ud_ok ? move_upper_right_p : move_right_p
          if $game_variables[3] == 0
           @character_name = "行走.png"
          end
        end
      end
      # ローカル変数に座標を記憶
      last_real_x = @real_x
      last_real_y = @real_y
      # 移動処理
      @real_x = @x * 128 + @revise_x
      @real_y = @y * 128 + @revise_y
      # ローカル変数に移動中かどうかを記憶
      last_moving = moving?
      # 座標更新
      move_on
      # 現在の座標と以前の座標が異なる場合
      if (last_real_x != @real_x or last_real_y != @real_y)
        @move_distance = 0 if @move_distance == nil
        @move_distance += Math.sqrt((last_real_x - @real_x) ** 2 +
                                      (last_real_y - @real_y) ** 2)
        if @move_distance >= 128
          @move_distance %= 128
          increase_steps
        end
        # アニメーションを更新
        anime_update
      else
        @pattern = 0
      end
    end
    # キャラクターが下に移動し、かつ画面上の位置が中央より下の場合
    if @real_y > last_real_y and @real_y - $game_map.display_y > CENTER_Y
      # マップを下にスクロール
      $game_map.scroll_down(@real_y - last_real_y)
    end
    # キャラクターが左に移動し、かつ画面上の位置が中央より左の場合
    if @real_x < last_real_x and @real_x - $game_map.display_x < CENTER_X
      # マップを左にスクロール
      $game_map.scroll_left(last_real_x - @real_x)
    end
    # キャラクターが右に移動し、かつ画面上の位置が中央より右の場合
    if @real_x > last_real_x and @real_x - $game_map.display_x > CENTER_X
      # マップを右にスクロール
      $game_map.scroll_right(@real_x - last_real_x)
    end
    # キャラクターが上に移動し、かつ画面上の位置が中央より上の場合
    if @real_y < last_real_y and @real_y - $game_map.display_y < CENTER_Y
      # マップを上にスクロール
      $game_map.scroll_up(last_real_y - @real_y)
    end
    # 前回プレイヤーが移動中だった場合
    if last_moving
      # 同位置のイベントとの接触によるイベント起動判定
      result = check_event_trigger_here([1,2])
      if result == true
        if (last_real_x / 128.0).round != @x and
            (last_real_y / 128.0).round != @y
          if @direction == 2 or @direction == 8
            if (last_real_x / 128.0).round > @x
              turn_left
            else
              turn_right
            end
          else
            if (last_real_y / 128.0).round > @y
              turn_up
            else
              turn_down
            end
          end
        elsif (last_real_x / 128.0).round > @x
          turn_left
        elsif (last_real_x / 128.0).round < @x
          turn_right
        elsif (last_real_y / 128.0).round > @y
          turn_up
        elsif (last_real_y / 128.0).round < @y
          turn_down
        end
      end
      # 起動したイベントがない場合
      if result == false
        # デバッグモードが ON かつ CTRL キーが押されている場合を除き
        unless $DEBUG and Input.press?(Input::CTRL)
          # エンカウント カウントダウン
          if @encounter_count > 0
            @encounter_count -= 1
          end
        end
      end
    end

感觉用起来不是很完美,我需要这样的效果∶没有方向键的操作时,立刻换成名为“站立”
的行走图,不知道能不能实现?
谢谢了!
作者: dbshy    时间: 2008-11-15 20:44
update

if !moving? then
  @character_name = "行走.png"
end


作者: 小角色    时间: 2008-11-15 21:32
谢谢这位朋友。。。不过这段加在哪里比较好?。。
作者: 小角色    时间: 2008-11-15 22:02
自己解决了 谢谢。。。




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1