查看: 3516|回复: 6

[原创发布] 【轮子联欢】脚本 - 逐帧行走图动画

[复制链接]
梦石
2
星屑
6767
在线时间
501 小时
注册时间
2018-3-23
回帖
487

R考场第七期银奖

发表于 2020-4-19 16:10:53 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
本帖最后由 MCCF 于 2020-4-20 14:00 编辑

事件-移动路径中有一个功能是“改变图像”,但在XP之后图像的改变无法再固定到哪一帧,而只能改变为3*4的一整格图像。
为了比较方便地实现行走图动画效果,就需要用到逐帧行走图的功能。
一时间搜索不到相关脚本,大概是因为大佬们都是自己随手写的吧,所以就出现了如下内容。
[pre lang="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[/pre]

评分

参与人数 3赞 +3 收起 理由
哇哇哇啊叭叭 + 1 羡慕
shouhuangzhua + 1 精品文章
PLeaseS + 1

查看全部评分

祝好。
头像被屏蔽
梦石
0
星屑
5706
在线时间
922 小时
注册时间
2013-8-29
回帖
1401
发表于 2020-4-19 16:13:28 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

梦石
0
星屑
11809
在线时间
623 小时
注册时间
2016-8-25
回帖
1340

R考场第七期纪念奖

发表于 2020-4-19 22:48:59 | 显示全部楼层
感谢大佬分享
加油呐
回复

使用道具 举报

梦石
2
星屑
6767
在线时间
501 小时
注册时间
2018-3-23
回帖
487

R考场第七期银奖

 楼主| 发表于 2020-4-20 13:57:48 | 显示全部楼层
没想到吧,这个脚本居然还更新了
V1.1版本。紧急修正了不能用于2*4行走图的巨大BUG。
没想到吧,我顺便还赚了一波星屑
祝好。
回复

使用道具 举报

头像被屏蔽
梦石
0
星屑
5706
在线时间
922 小时
注册时间
2013-8-29
回帖
1401
发表于 2020-4-20 14:14:31 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部