查看: 3287|回复: 1

[原创发布] 【脚本】多帧行走图

[复制链接]
梦石
0
星屑
710
在线时间
100 小时
注册时间
2019-6-23
回帖
3
发表于 2022-9-8 22:57:42 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 幸运四燕 于 2022-9-8 23:26 编辑

※ 前言


就是觉得走一步才三帧也太卡了,正好也在学RGSS3所以就按着系统的脚本照葫芦画瓢写了一个练练手
这个脚本是以XP的行走图作范例的,所以请根据实际情况修改脚本内容
另外这个脚本不支持八方位行走,等以后技术成熟了我在试着改改

※ 使用方式


在多帧数行走图的文件名上输入符号“%”即可
支持只有单个角色元的行走图_(:з」∠)_

行走图范例(XP的行走图)

8个角色元

8个角色元

单个角色元

单个角色元



※ 脚本


请展开

[pre lang="ruby"]#==============================================================================
# ■ 行走图多帧
#------------------------------------------------------------------------------
#    角色静止时显示的图像默认是第二列各行的图像。
#    另外,数据库里行走图的显示BUG忽略就好,不会影响最终效果。(但是看的好难受)
#    播放顺序是以角色静止的那一帧为首帧从左往右开始播放。
#    以XP的行走图为例 显示顺序大概是:
#
#      ④  ①  ②  ③ (每一行均如此)
#
#    使用方法:导入容纳多个帧数的图像到"charater"并在文件名前面加上符号“%”                    
#==============================================================================

module YCF
  
  CHARACTER_01 = 16  # 当行走图中容纳多个角色元时,有关宽的判定(行走图的宽的人
                     # 物数量)
                     
  CHARACTER_02 = 4   # 当行走图中仅容纳一个角色元时(即文件名有"$"),有关宽的判
                     # 定(行走图的宽的人物数量)
                     
  CHARACTER_03 = 4   # 单个角色元的宽的角色数量
  
end

class Sprite_Character
  #--------------------------------------------------------------------------
  # ● 角色的位图判定
  #--------------------------------------------------------------------------
  def set_character_bitmap
    self.bitmap = Cache.character(@character_name)
    sign = @character_name[/^[\!\$]./]
  #--------------------------------------------------------------------------
  # ● 多帧行走图的处理方法
  #--------------------------------------------------------------------------
    #判定是否为多帧行走图
    if sign && sign.include?('%')
      #行走图中有%的判定
      @cw = bitmap.width / YCF::CHARACTER_01 #改成行走图的宽中人物的数量
      @ch = bitmap.height / 8
      #行走图中同时有%和$的判定
      if sign && sign.include?('$')
        @cw = bitmap.width / YCF::CHARACTER_02 #改成行走图的宽中人物的数量
        @ch = bitmap.height / 4
      else
      end
  #--------------------------------------------------------------------------
  # ● Vx Ace的行走图的处理方法
  #--------------------------------------------------------------------------
    else
      if sign && sign.include?('$')
        #行走图中有$的判定
        @cw = bitmap.width / 3
        @ch = bitmap.height / 4
      else
        #行走图中无除!以外的特殊符号的判定
        @cw = bitmap.width / 12
        @ch = bitmap.height / 8
      end
    end
    self.ox = @cw / 2
    self.oy = @ch
  end
  #--------------------------------------------------------------------------
  # ● 更新源矩形&源矩形兼容判定
  #--------------------------------------------------------------------------
  def update_src_rect
    sign = @character_name[/^[\!\$]./]
    if @tile_id == 0
      index = @character.character_index
      if sign && sign.include?('%')
        pattern = @character.pattern < YCF::CHARACTER_03 ? @character.pattern : 1
                 #@character.pattern < 单个角色元的宽的人物数量
      else
        pattern = @character.pattern < 3 ? @character.pattern : 1
      end
    sx = (index % 4 * 3 + pattern) * @cw
    sy = (index / 4 * 4 + (@character.direction - 2) / 2) * @ch
    self.src_rect.set(sx, sy, @cw, @ch)
    else
    end
  end
end
[/pre]


※ 使用规约



    可以不署名。
    不需要使用报告。
    可以用于商业用途、参加比赛、R向作品等,不过不可以用于含有反动内容等违反当地法律、扰乱社会秩序的游戏作品里。
    我不提供素材的后续支持。
    使用素材的过程中产生的一切争议均与原作者、原站点无关。
    转载随意,不过请放上素材的来源链接,禁止谎称素材为原创。

评分

参与人数 1赞 +1 收起 理由
寂静的夜里 + 1 原创发布

查看全部评分

梦石
0
星屑
1918
在线时间
380 小时
注册时间
2012-12-10
回帖
402
发表于 2022-12-10 16:53:06 | 显示全部楼层
想问一下怎么插入啊
『我对你矢志不渝。』
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部