赞 | 0 |
VIP | 77 |
好人卡 | 306 |
积分 | 1 |
经验 | 85662 |
最后登录 | 2023-11-23 |
在线时间 | 1782 小时 |
Lv1.梦旅人 虱子
- 梦石
- 0
- 星屑
- 121
- 在线时间
- 1782 小时
- 注册时间
- 2010-6-19
- 帖子
- 3597
|
- #==============================================================================
- # 本脚本来自www.66rpg.com,转载与使用请保留此内容。
- #==============================================================================
- # 作者: 柳柳
- #
- # 说明:这是功能我再比较早期的时候发布在幻森,不过那时候比较笨,方法很糟糕
- # 这次是拿上就可以用的。
- #
- # 感谢:Claimh的脚本使我想起这个功能重做了一遍,本想直接用他的,不过他的算法过分
- # 冗余了,没好意思用。
- #==============================================================================
- # 使用方法:默认情况下把静态图变为了走步图。如果想自行修改,提供功能如下:
- #
- # 角色走步图:draw_walk_actor_graphic
- # 角色转向图:draw_turn_actor_graphic
- #
- # 回复原有静态角色图:删除100行以后的内容。修改下面这个变量可以更改行走速度
- #==============================================================================
- WALK_REFRESH_FRAME_SPEED = 15 # 刷新的速度,越大越慢,你可以改为3左右试试看
- #==============================================================================
- # Window_Base
- #==============================================================================
- class Window_Base < Window
- #--------------------------------------------------------------------------
- # 初始化方法
- #--------------------------------------------------------------------------
- alias initialize_walk initialize
- def initialize(x, y, width, height)
- initialize_walk(x, y, width, height)
- @start_walk = false
- @turn_index = 0
- @turn_phase = 0
- end
- #--------------------------------------------------------------------------
- # ★ 角色行走图
- # actor : 角色
- # x : 描绘的 X 坐标
- # y : 描绘的 Y 坐标
- #--------------------------------------------------------------------------
- def draw_walk_actor_graphic(actor, x, y)
- bitmap = RPG::Cache.character(actor.character_name, actor.character_hue)
- cw = bitmap.width / 4
- ch = bitmap.height / 4
- @start_turn = true
- case @turn_phase
- when 0
- x_x = 0
- when 1
- x_x = cw
- when 2
- x_x = cw * 2
- when 3
- x_x = cw * 3
- end
- src_rect = Rect.new(x_x, 0, cw, ch)
- self.contents.blt(x - cw / 2, y - ch, bitmap, src_rect)
- end
- #--------------------------------------------------------------------------
- # ★ 角色转向图
- # actor : 角色
- # x : 描绘的 X 坐标
- # y : 描绘的 Y 坐标
- #--------------------------------------------------------------------------
- def draw_turn_actor_graphic(actor, x, y)
- bitmap = RPG::Cache.character(actor.character_name, actor.character_hue)
- cw = bitmap.width / 4
- ch = bitmap.height / 4
- @start_turn = true
- case @turn_phase
- when 0
- x_x = 0
- when 1
- x_x = ch
- when 2
- x_x = ch * 3
- when 3
- x_x = ch * 2
- end
- src_rect = Rect.new(0, x_x, cw, ch)
- self.contents.blt(x - cw / 2, y - ch, bitmap, src_rect)
- end
- #--------------------------------------------------------------------------
- # 更新(可别使用刷新,玩命耗费内存= =)
- #--------------------------------------------------------------------------
- alias walk_update update
- def update
- walk_update
- if @start_turn == true
- @turn_index += 1
- if @turn_index == WALK_REFRESH_FRAME_SPEED
- refresh
- @turn_index = 0
- @turn_phase = (@turn_phase+1)%4
- end
- end
- end
- end
- #==============================================================================
- # Window_Base
- #==============================================================================
- class Window_Base < Window
- #--------------------------------------------------------------------------
- # 把原有静态图改为动态走步图
- #--------------------------------------------------------------------------
- def draw_actor_graphic(actor, x, y)
- draw_walk_actor_graphic(actor, x, y)
- end
- end
复制代码 |
|