查看: 119|回复: 0

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

[复制链接]
  • TA的每日心情
    开心
    昨天 10:15
  • 签到天数: 73 天

    连续签到: 1 天

    [LV.6]常住居民II

    2044

    主题

    86

    回帖

    8602

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    VIP
    -2
    卡币
    6460
    OK点
    16
    积分
    8602
    发表于 2024-4-12 16:31:36 | 显示全部楼层 |阅读模式
    事件-移动路径中有一个功能是“改变图像”,但在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. # ■ Game_CharacterBase
    14. #------------------------------------------------------------------------------
    15. #  管理地图人物的基本类。是所有地图人物类的共通父类。拥有坐标、图片等基本信息。
    16. #==============================================================================
    17. class Game_CharacterBase
    18.   #--------------------------------------------------------------------------
    19.   # ● 定义实例变量
    20.   #--------------------------------------------------------------------------
    21.   attr_reader   :pattern_id               # 当前帧ID
    22.   #--------------------------------------------------------------------------
    23.   # ● 设置当前帧
    24.   #--------------------------------------------------------------------------
    25.   def set_pattern(index)
    26.     @pattern_id = index
    27.   end
    28. end
    29. #==============================================================================
    30. # ■ Sprite_Character
    31. #------------------------------------------------------------------------------
    32. #  地图人物的精灵。根据 Game_Character 类的实例自动变化。
    33. #==============================================================================
    34. class Sprite_Character
    35.   #--------------------------------------------------------------------------
    36.   # ● 更新源矩形
    37.   #--------------------------------------------------------------------------
    38.   alias framing_character_update_src_rect update_src_rect
    39.   def update_src_rect
    40.     return framing_character_update_src_rect unless@character.pattern_id
    41.     index = @character.character_index
    42.     x = @cw * (index % 4 * 3 + @character.pattern_id % 3)
    43.     y = @ch * (index / 4 * 4 + @character.pattern_id / 3)
    44.     self.src_rect.set(x, y, @cw, @ch)
    45.   end
    46. end
    复制代码

                 本帖来自P1论坛作者MCCF,因Project1站服务器在国外有时候访问缓慢不方便作者交流学习,经联系P1站长fux2同意署名转载一起分享游戏制作经验,共同为国内独立游戏作者共同创造良好交流环境,原文地址:https://rpg.blue/forum.php?mod=viewthread&tid=481325  若有侵权,发帖作者可联系底部站长QQ在线咨询功能删除,谢谢。
    天天去同能,天天有童年!
    回复 论坛版权

    使用道具 举报

    文明发言,和谐互动
    文明发言,和谐互动
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|Archiver|手机版|小黑屋|同能RPG制作大师 ( 沪ICP备12027754号-3 )

    GMT+8, 2024-9-21 16:38 , Processed in 0.048951 second(s), 39 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

    快速回复 返回顶部 返回列表