Project1

标题: 【轮子联欢】脚本 - 逐帧行走图动画 [打印本页]

作者: MCCF    时间: 2020-4-19 16:10
标题: 【轮子联欢】脚本 - 逐帧行走图动画
本帖最后由 MCCF 于 2020-4-20 14:00 编辑

事件-移动路径中有一个功能是“改变图像”,但在XP之后图像的改变无法再固定到哪一帧,而只能改变为3*4的一整格图像。
为了比较方便地实现行走图动画效果,就需要用到逐帧行走图的功能。
一时间搜索不到相关脚本,大概是因为大佬们都是自己随手写的吧,所以就出现了如下内容。
RUBY 代码复制
  1. #==============================================================================
  2. # 逐帧行走图 V1.1
  3. #------------------------------------------------------------------------------
  4. # - 脚本原作者为MCCF。此脚本没有使用规约,在符合当地法规的情况下可自由使用。
  5. #==============================================================================
  6. # - 在XP中,可强制设置人物行走图位于哪一帧。此脚本延续了这一设定,以实现更好的效果。
  7. #------------------------------------------------------------------------------
  8. # - 事件-移动路线中使用set_pattern(id)即可,id为指定的帧的下标(0-11)。
  9. #------------------------------------------------------------------------------
  10. # - 如想要清除强制设定请使用set_pattern(nil)的方法。
  11. #==============================================================================
  12.  
  13. #==============================================================================
  14. # ■ Game_CharacterBase
  15. #------------------------------------------------------------------------------
  16. #  管理地图人物的基本类。是所有地图人物类的共通父类。拥有坐标、图片等基本信息。
  17. #==============================================================================
  18. class Game_CharacterBase
  19.   #--------------------------------------------------------------------------
  20.   # ● 定义实例变量
  21.   #--------------------------------------------------------------------------
  22.   attr_reader   :pattern_id               # 当前帧ID
  23.   #--------------------------------------------------------------------------
  24.   # ● 设置当前帧
  25.   #--------------------------------------------------------------------------
  26.   def set_pattern(index)
  27.     @pattern_id = index
  28.   end
  29. end
  30. #==============================================================================
  31. # ■ Sprite_Character
  32. #------------------------------------------------------------------------------
  33. #  地图人物的精灵。根据 Game_Character 类的实例自动变化。
  34. #==============================================================================
  35. class Sprite_Character
  36.   #--------------------------------------------------------------------------
  37.   # ● 更新源矩形
  38.   #--------------------------------------------------------------------------
  39.   alias framing_character_update_src_rect update_src_rect
  40.   def update_src_rect
  41.     return framing_character_update_src_rect unless @character.pattern_id
  42.     index = @character.character_index
  43.     x = @cw * (index % 4 * 3 + @character.pattern_id % 3)
  44.     y = @ch * (index / 4 * 4 + @character.pattern_id / 3)
  45.     self.src_rect.set(x, y, @cw, @ch)
  46.   end
  47. end

作者: chanszeman1018    时间: 2020-4-19 16:13
提示: 作者被禁止或删除 内容自动屏蔽
作者: PLeaseS    时间: 2020-4-19 22:48
感谢大佬分享
加油呐
作者: MCCF    时间: 2020-4-20 13:57
没想到吧,这个脚本居然还更新了
V1.1版本。紧急修正了不能用于2*4行走图的巨大BUG。
没想到吧,我顺便还赚了一波星屑
作者: chanszeman1018    时间: 2020-4-20 14:14
提示: 作者被禁止或删除 内容自动屏蔽




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