Project1

标题: 关于同伴画面 [打印本页]

作者: lizy    时间: 2011-7-26 14:16
标题: 关于同伴画面
本帖最后由 lizy 于 2011-7-26 14:17 编辑

我觉得这样看上去有些呆板,所以我想让同伴显示移动时的样子,请问怎么搞呢?dsu_plus_rewardpost_czw
作者: Wind2010    时间: 2011-7-26 14:55
  1. #==============================================================================
  2. # 本脚本来自www.66rpg.com,转载与使用请保留此内容。
  3. #==============================================================================
  4. # 作者: 柳柳
  5. #
  6. # 说明:这是功能我再比较早期的时候发布在幻森,不过那时候比较笨,方法很糟糕
  7. #       这次是拿上就可以用的。
  8. #
  9. # 感谢:Claimh的脚本使我想起这个功能重做了一遍,本想直接用他的,不过他的算法过分
  10. #       冗余了,没好意思用。
  11. #==============================================================================
  12. # 使用方法:默认情况下把静态图变为了走步图。如果想自行修改,提供功能如下:
  13. #
  14. # 角色走步图:draw_walk_actor_graphic
  15. # 角色转向图:draw_turn_actor_graphic
  16. #
  17. # 回复原有静态角色图:删除100行以后的内容。修改下面这个变量可以更改行走速度
  18. #==============================================================================
  19. WALK_REFRESH_FRAME_SPEED = 15  # 刷新的速度,越大越慢,你可以改为3左右试试看
  20. #==============================================================================
  21. # Window_Base
  22. #==============================================================================
  23. class Window_Base < Window
  24.   #--------------------------------------------------------------------------
  25.   # 初始化方法
  26.   #--------------------------------------------------------------------------
  27.   alias initialize_walk initialize
  28.   def initialize(x, y, width, height)
  29.     initialize_walk(x, y, width, height)
  30.     @start_walk = false
  31.     @turn_index = 0
  32.     @turn_phase = 0
  33.   end
  34.   #--------------------------------------------------------------------------
  35.   # ★  角色行走图
  36.   #     actor : 角色
  37.   #     x     : 描绘的 X 坐标
  38.   #     y     : 描绘的 Y 坐标
  39.   #--------------------------------------------------------------------------
  40.   def draw_walk_actor_graphic(actor, x, y)
  41.     bitmap = RPG::Cache.character(actor.character_name, actor.character_hue)
  42.     cw = bitmap.width / 4
  43.     ch = bitmap.height / 4
  44.     @start_turn = true
  45.     case @turn_phase
  46.     when 0
  47.       x_x = 0
  48.     when 1
  49.       x_x = cw
  50.     when 2
  51.       x_x = cw * 2
  52.     when 3
  53.       x_x = cw * 3
  54.     end
  55.     src_rect = Rect.new(x_x, 0, cw, ch)
  56.     self.contents.blt(x - cw / 2, y - ch, bitmap, src_rect)
  57.   end
  58.   #--------------------------------------------------------------------------
  59.   # ★  角色转向图
  60.   #     actor : 角色
  61.   #     x     : 描绘的 X 坐标
  62.   #     y     : 描绘的 Y 坐标
  63.   #--------------------------------------------------------------------------
  64.   def draw_turn_actor_graphic(actor, x, y)
  65.     bitmap = RPG::Cache.character(actor.character_name, actor.character_hue)
  66.     cw = bitmap.width / 4
  67.     ch = bitmap.height / 4
  68.     @start_turn = true
  69.     case @turn_phase
  70.     when 0
  71.       x_x = 0
  72.     when 1
  73.       x_x = ch
  74.     when 2
  75.       x_x = ch * 3
  76.     when 3
  77.       x_x = ch * 2
  78.     end
  79.     src_rect = Rect.new(0, x_x, cw, ch)
  80.     self.contents.blt(x - cw / 2, y - ch, bitmap, src_rect)
  81.   end
  82.   #--------------------------------------------------------------------------
  83.   #  更新(可别使用刷新,玩命耗费内存= =)
  84.   #--------------------------------------------------------------------------
  85.   alias walk_update update
  86.   def update
  87.     walk_update
  88.     if @start_turn == true
  89.       @turn_index += 1
  90.       if @turn_index == WALK_REFRESH_FRAME_SPEED
  91.         refresh
  92.         @turn_index = 0
  93.         @turn_phase = (@turn_phase+1)%4
  94.       end
  95.     end
  96.   end   
  97. end
  98. #==============================================================================
  99. # Window_Base
  100. #==============================================================================
  101. class Window_Base < Window
  102.   #--------------------------------------------------------------------------
  103.   # 把原有静态图改为动态走步图
  104.   #--------------------------------------------------------------------------
  105.   def draw_actor_graphic(actor, x, y)
  106.     draw_walk_actor_graphic(actor, x, y)
  107.   end
  108. end
复制代码





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