设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
Project1 查看内容

原地待机片刻的小动作

2005-12-10 00:00| 发布者: 柳柳| 查看: 8439| 评论: 0|原作者: 66RPG

摘要:    作者 亿万星辰  版本与更新  2005年12月  相关网址 点此进入讨论贴  范例工程 点此下载范例工程 脚本功能 人物死死的站在那里好象是傻了一些……如果间
 

 作者

亿万星辰

 版本与更新

 2005年12月

 相关网址

点此进入讨论贴

 范例工程

点此下载范例工程



脚本功能

人物死死的站在那里好象是傻了一些……
如果间隔一段时间我们没有去移动角色,他能不能自己做出点小动作呢?

使用方法

main前插入此段脚本,另附工程,里面有个行走图~~

需要一个行走图 XXXX_W.png,比如以 001-Fighter01.png 为人物行走图的话,就需要一个 001-Fighter01_W.png 的待机行走图。工程里我带的那个很简单~~~就是来回扭头~~可以自行修改。

相关截图

 

 
 

 脚本内容

#==============================================================================
# 本脚本来自www.66rpg.com,转载和使用请保留此信息
#==============================================================================

#==============================================================================
# ■ Game_Character (分割定义 1)
#------------------------------------------------------------------------------
#  处理角色的类。本类作为 Game_Player 类与 Game_Event
# 类的超级类使用。
#==============================================================================

class Game_Character
 attr_accessor :time
 #--------------------------------------------------------------------------
 # ● 初始化对像
 #--------------------------------------------------------------------------
 alias old_ini initialize
 def initialize
   old_ini
   @time = 0
 end
end

#==============================================================================
# ■ 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
 end
end

#==============================================================================
# 本脚本来自www.66rpg.com,转载和使用请保留此信息
#==============================================================================


脚本使用的通用说明

约定:本脚本来源于网络,任何人不得随意将本脚本应用于商业用途,如需转载,必须保留所有版权信息,如果是国内作者,最好征求作者同意——否则发生任何后果,66RPG不予负责。使用此脚本表示您默认接受上述约定。

说明:不同脚本之间、尤其是不同作者脚本之间会有冲突,本站会对已知脚本冲突进行简单说明。测试新脚本请下载本站提供的测试文件或者新建工程测试。脚本不要贪多,否则可能会互相冲突对您的游戏造成未知的影响。如果脚本内或者本站内提供了解释,请务必完全看完解释后再使用,如有问题,请到论坛讨论。


鲜花
拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-15 15:50

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

返回顶部