Project1

标题: 请问如何在状态界面中 加入一个角色原地走动的行走图 [打印本页]

作者: clap_pl    时间: 2010-8-8 22:54
标题: 请问如何在状态界面中 加入一个角色原地走动的行走图
如题,想在状态界面中加入该角色原地行走的行走图,让他在哪里不停地走啊走
请问如何实现?:lol

作者: dbshy    时间: 2010-8-9 14:09
本帖最后由 dbshy 于 2010-8-9 14:10 编辑

http://rpg.blue/forum.php?mod=vi ... 4937&highlight=

LZ你看别人都给500分,是不是考虑加点,哈哈
另外我只是想看下签名
作者: clap_pl    时间: 2010-8-9 16:54
OH 这个帖子 至少给了我一个清晰的思路
先谢谢LS
晚上具体试试看


对了, 有段脚本我想请教一下
alias old_update update
  def update
    old_update
      @index += 1
     用SPEED来控制速度        
     if @turn_index == SPEED then
        refresh
        @index = 0
        @phase = (@phase+1)%4
      end
    end
这个 alias 是什么意思
old_update 又是指代哪个 是不是可以任意取名的
我的理解是 把原来update里面的东西复制到old_update里面
然后 再写新的内容接在后面 是不是这样
会不会影响到原来的update

:dizzy:  迷糊中

作者: clap_pl    时间: 2010-8-9 16:56
回复 dbshy 的帖子

我倒是想给你100,系统死活不让
   
作者: dbshy    时间: 2010-8-9 17:27
请LZ按下f1  搜索alias
或者去看 ruby参考手册

这个问题论坛上绝对有人问过,可以自己搜索一下
我记得八云就问过,而且也是500分
作者: 逸豫    时间: 2010-8-9 18:21
http://www.diyrpg.net/bbs/viewthread.php?tid=3144
乱入党- -
作者: S·MAX    时间: 2010-8-9 20:16
http://ibbs.emu-zone.org/viewthread.php?tid=248826传说中的传送门
作者: 退屈£无聊    时间: 2010-8-10 08:17
这个应该自己会用吧...
  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 = 12  # 刷新的速度,越大越慢,你可以改为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.     if actor.hp == 0
  42.       bitmap = RPG::Cache.character(actor.character_name+"_d", actor.character_hue)
  43.       cw = bitmap.width
  44.       ch = bitmap.height
  45.       src_rect = Rect.new(0,0,cw,ch)
  46.     else
  47.       bitmap = RPG::Cache.character(actor.character_name, actor.character_hue)
  48.       cw = bitmap.width / 4
  49.       ch = bitmap.height / 4
  50.       @start_turn = true
  51.       case @turn_phase
  52.       when 0
  53.         x_x = 0
  54.       when 1
  55.         x_x = cw
  56.       when 2
  57.         x_x = cw * 2
  58.       when 3
  59.       x_x = cw * 3
  60.       end
  61.       src_rect = Rect.new(x_x, 0, cw, ch)
  62.     end
  63.     self.contents.blt(x - cw / 2, y - ch, bitmap, src_rect)
  64.   end
  65.   #--------------------------------------------------------------------------
  66.   # ★  角色转向图
  67.   #     actor : 角色
  68.   #     x     : 描绘的 X 坐标
  69.   #     y     : 描绘的 Y 坐标
  70.   #--------------------------------------------------------------------------
  71.   def draw_turn_actor_graphic(actor, x, y)
  72.     bitmap = RPG::Cache.character(actor.character_name, actor.character_hue)
  73.     cw = bitmap.width / 4
  74.     ch = bitmap.height / 4
  75.     @start_turn = true
  76.     case @turn_phase
  77.     when 0
  78.       x_x = 0
  79.     when 1
  80.       x_x = ch
  81.     when 2
  82.       x_x = ch * 3
  83.     when 3
  84.       x_x = ch * 2
  85.     end
  86.     src_rect = Rect.new(0, x_x, cw, ch)
  87.     self.contents.blt(x - cw / 2, y - ch, bitmap, src_rect)
  88.   end
  89.   #--------------------------------------------------------------------------
  90.   #  更新(可别使用刷新,玩命耗费内存= =)
  91.   #--------------------------------------------------------------------------
  92.   alias walk_update update
  93.   def update
  94.     walk_update
  95.     if @start_turn == true
  96.       @turn_index += 1
  97.       if @turn_index == WALK_REFRESH_FRAME_SPEED
  98.         refresh
  99.         @turn_index = 0
  100.         @turn_phase = (@turn_phase+1)%4
  101.       end
  102.     end
  103.   end  
  104. end

  105. #==============================================================================
  106. # Window_Base
  107. #==============================================================================
  108. class Window_Base < Window
  109.   #--------------------------------------------------------------------------
  110.   # 把原有静态图改为动态走步图
  111.   #--------------------------------------------------------------------------
  112. def draw_actor_graphic(actor, x, y)
  113.    draw_walk_actor_graphic(actor, x, y)
  114. end
  115. end
复制代码

作者: clap_pl    时间: 2010-8-10 09:53
多谢诸位!:)




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