人物死死的站在那里好象是傻了一些…… 
如果间隔一段时间我们没有去移动角色,他能不能自己做出点小动作呢?{/cy}
 
main前插入此段脚本,另附工程,里面有个行走图~~ - #==============================================================================# ■ Game_Character (分割定义 1)#------------------------------------------------------------------------------#  处理角色的类。本类作为 Game_Player 类与 Game_Event# 类的超级类使用。#==============================================================================class Game_Character  attr_accessor :time  #--------------------------------------------------------------------------  # ● 初始化对像  #--------------------------------------------------------------------------  alias old_ini initialize  def initialize    old_ini    @time = 0  endend#==============================================================================# ■ Game_Player#------------------------------------------------------------------------------#  处理主角的类。事件启动的判定、以及地图的滚动等功能。# 本类的实例请参考 $game_player。#==============================================================================class Game_Player < Game_Character  TIME_LIMIT = 200  # 抓耳挠腮前的等待时间 (好象也不是帧…不知道是什么单位了)  #--------------------------------------------------------------------------  # ● 画面更新  #--------------------------------------------------------------------------  def update    # 本地变量记录移动信息    last_moving = moving?    if @time == TIME_LIMIT      @character_name = @character_name + "_W"      @scratch = true      @step_anime = true      @time = TIME_LIMIT + 1    elsif @time < TIME_LIMIT      @scratch = false      @step_anime = false    end    if @scratch == false      @old_pic = @character_name    end    # 移动中、事件执行中、强制移动路线中、    # 信息窗口一个也不显示的时候    unless moving? or $game_system.map_interpreter.running? or           @move_route_forcing or $game_temp.message_window_showing      # 如果方向键被按下、主角就朝那个方向移动      case Input.dir4      when 2        move_down        @time = 0        @scratch = false        @character_name = @old_pic      when 4        move_left        @time = 0        @scratch = false        @character_name = @old_pic      when 6        move_right        @time = 0        @scratch = false        @character_name = @old_pic      when 8        move_up        @time = 0        @scratch = false        @character_name = @old_pic      end    end    # 本地变量记忆坐标    last_real_x = @real_x    last_real_y = @real_y    super    # 角色向下移动、画面上的位置在中央下方的情况下    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    # 不在移动中的情况下    unless moving?      @time += 1 if @time < TIME_LIMIT      # 上次主角移动中的情况      if last_moving        # 与同位置的事件接触就判定为事件启动        result = check_event_trigger_here([1,2])        # 没有可以启动的事件的情况下        if result == false          # 调试模式为 ON 并且按下 CTRL 键的情况下除外          unless $DEBUG and Input.press?(Input::CTRL)            # 遇敌计数下降            if @encounter_count > 0              @encounter_count -= 1            end          end        end      end      # 按下 C 键的情况下      if Input.trigger?(Input::C)        # 判定为同位置以及正面的事件启动        check_event_trigger_here([0])        check_event_trigger_there([0,1,2])      end    end  endend复制代码
 
  复制代码
说明: 
需要一个行走图 XXXX_W.png,比如以 001-Fighter01.png 为人物行走图的话,就需要一个 001-Fighter01_W.png 的待机行走图。工程里我带的那个很简单~~~就是来回扭头~~可以自行修改。
 工程点这里
            本帖来自P1论坛作者亿万星辰,因Project1站服务器在国外有时候访问缓慢不方便作者交流学习,经联系P1站长fux2同意署名转载一起分享游戏制作经验,共同为国内独立游戏作者共同创造良好交流环境,原文地址: https://rpg.blue/forum.php?mod=viewthread&tid=2511  若有侵权,发帖作者可联系底部站长QQ在线咨询功能删除,谢谢。  |