じ☆ve冰风 发表于 2024-4-12 16:31:36

【轮子联欢】脚本 - 逐帧行走图动画

事件-移动路径中有一个功能是“改变图像”,但在XP之后图像的改变无法再固定到哪一帧,而只能改变为3*4的一整格图像。
为了比较方便地实现行走图动画效果,就需要用到逐帧行走图的功能。
一时间搜索不到相关脚本,大概是因为大佬们都是自己随手写的吧,所以就出现了如下内容。
RUBY 代码
#==============================================================================
# 逐帧行走图 V1.1
#------------------------------------------------------------------------------
# - 脚本原作者为MCCF。此脚本没有使用规约,在符合当地法规的情况下可自由使用。
#==============================================================================
# - 在XP中,可强制设置人物行走图位于哪一帧。此脚本延续了这一设定,以实现更好的效果。
#------------------------------------------------------------------------------
# - 事件-移动路线中使用set_pattern(id)即可,id为指定的帧的下标(0-11)。
#------------------------------------------------------------------------------
# - 如想要清除强制设定请使用set_pattern(nil)的方法。
#==============================================================================

#==============================================================================
# ■ Game_CharacterBase
#------------------------------------------------------------------------------
#  管理地图人物的基本类。是所有地图人物类的共通父类。拥有坐标、图片等基本信息。
#==============================================================================
class Game_CharacterBase
#--------------------------------------------------------------------------
# ● 定义实例变量
#--------------------------------------------------------------------------
attr_reader   :pattern_id               # 当前帧ID
#--------------------------------------------------------------------------
# ● 设置当前帧
#--------------------------------------------------------------------------
def set_pattern(index)
    @pattern_id = index
end
end
#==============================================================================
# ■ Sprite_Character
#------------------------------------------------------------------------------
#  地图人物的精灵。根据 Game_Character 类的实例自动变化。
#==============================================================================
class Sprite_Character
#--------------------------------------------------------------------------
# ● 更新源矩形
#--------------------------------------------------------------------------
alias framing_character_update_src_rect update_src_rect
def update_src_rect
    return framing_character_update_src_rect unless@character.pattern_id
    index = @character.character_index
    x = @cw * (index % 4 * 3 + @character.pattern_id % 3)
    y = @ch * (index / 4 * 4 + @character.pattern_id / 3)
    self.src_rect.set(x, y, @cw, @ch)
end
end

             本帖来自P1论坛作者MCCF,因Project1站服务器在国外有时候访问缓慢不方便作者交流学习,经联系P1站长fux2同意署名转载一起分享游戏制作经验,共同为国内独立游戏作者共同创造良好交流环境,原文地址:https://rpg.blue/forum.php?mod=viewthread&tid=481325若有侵权,发帖作者可联系底部站长QQ在线咨询功能删除,谢谢。
页: [1]
查看完整版本: 【轮子联欢】脚本 - 逐帧行走图动画