设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1825|回复: 0
打印 上一主题 下一主题

[已经过期] 关于XAS与行走图扩展,场所移动后显示错误

[复制链接]

Lv2.观梦者

梦石
0
星屑
330
在线时间
304 小时
注册时间
2016-8-13
帖子
16
跳转到指定楼层
1
发表于 2017-8-3 09:46:35 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
这个行走图脚本与XAS后,场所移动显示
#使用方法:在角色行走图片名中添加"[s5][m8]",则表示静止时每方向5张图片,移动时8张。
#图片命名中如果有"[s5]"或者"[m8]"这样的字符串,则按给出的数字划分行走图,
#否则按程序默认的方式划分         ---By 风宥雪
#静止站立图也支持动态效果。
class Sprite_Character < Sprite_Base
  #--------------------------------------------------------------------------
  # ● 设置角色的位图
  #--------------------------------------------------------------------------
  alias old_set_character_bitmap set_character_bitmap
  def set_character_bitmap
    @character.frame_total = 0         #记住要归零化
    @character.change = false
    if @character_name =~ /\[s(\d+)\]/i
      @character.frame_s = $1.to_i     #匹配静止帧数
      @character.change = true
      @character.frame_total += @character.frame_s
    else
      @character.frame_s = 0
    end
    if @character_name =~ /\[m(\d+)\]/i
      @character.frame_m = $1.to_i     #匹配移动帧数
      @character.change = true
      @character.frame_total += @character.frame_m
    else
      @character.frame_m  = 0
    end
    if @character.change
      if @character.frame_total == 0
        msgbox("你的人物行走图命名有问题,请仔细检查!用[s5][m8]表示静止5帧,行走8帧!")
        return
      else
        self.bitmap = Cache.character(@character_name)
        @cw = bitmap.width / @character.frame_total
        @ch = bitmap.height / 4
        self.ox = @cw / 2
        self.oy = @ch
      end
    else #沿用原来的情况
      old_set_character_bitmap
      @character.frame_s = 3
    end
  end
  #--------------------------------------------------------------------------
  # ● 更新源矩形
  #--------------------------------------------------------------------------
  alias old_update_src_rect update_src_rect
  def update_src_rect
    if @character.change
      if @tile_id == 0
      index = @character.character_index
      pattern = @character.pattern
      sx = pattern * @cw
      sy = (@character.direction - 2) / 2 * @ch
      self.src_rect.set(sx, sy, @cw, @ch)
      end
    else
    old_update_src_rect
    end
  end
end

class Game_CharacterBase
  attr_accessor   :move_speed               # 移动速度
  attr_accessor   :frame_m                  # 移动图片帧数(默认每个方向3张)
  attr_accessor   :frame_s                  # 静止图片动态帧数(0表示没动态)
  attr_accessor   :frame_total              # 更改总帧数
  attr_accessor   :change                   # 是否更改默认
  alias old_init initialize
  def initialize
    old_init
    @move_speed = 5.5
    @frame_m = 3
    @frame_s = 0
    @frame_total = 0
    @change = false
    @original_pattern = 0
  end
  
  alias old_set_graphic set_graphic
  def set_graphic(character_name, character_index)
    old_set_graphic(character_name, character_index)
    @original_pattern = 0
  end
  #--------------------------------------------------------------------------
  # ● 更改方向,不需要重置stop_count
  #--------------------------------------------------------------------------
  def set_direction(d)
    @direction = d if !@direction_fix && d != 0
  end
end

class Game_Character < Game_CharacterBase
  #--------------------------------------------------------------------------
  # ● 更新动画图案
  #--------------------------------------------------------------------------
  def update_anime_pattern
    #1.静止时,有无动态图
    if (!@step_anime && @stop_count > 0)
      if @frame_s == 0 #无动态图,则采用行走图
        @pattern = (@pattern + 1) % @frame_m
      else             #有动态图
        @pattern = (@pattern + 1) % @frame_s
      end
    #2.踏步动画或移动中时
    else
      if @frame_m == 0 #无行走图,则采用静止动态图
        @pattern = (@pattern + 1) % @frame_s
      else             #有行走图则采用行走图
        @pattern = @frame_s + (@pattern - @frame_s + 1) % @frame_m
      end
    end
  end
  #--------------------------------------------------------------------------
  # ● 更新动画计数
  #--------------------------------------------------------------------------
  def update_anime_count
    if moving? && @walk_anime
      @anime_count += 1.5
    elsif @step_anime || @pattern != @original_pattern || @frame_s > 1 || @walk_anime#静止有动态图时也要更新计数
      @anime_count += 0.75
    end
  end
end

#~ #==============================================================================
#~ # ■ Game_Player
#~ #------------------------------------------------------------------------------
#~ #  处理玩家人物的类。拥有事件启动的判定、地图的卷动等功能。
#~ #   本类的实例请参考 $game_player 。
#~ #==============================================================================
#~ class Game_Player < Game_Character
#~   #--------------------------------------------------------------------------
#~   # ● 更新动画图案,添加了玩家移动时的脚步声。
#~   #--------------------------------------------------------------------------
#~   def update_anime_pattern
#~     super
#~       Audio.me_play("Audio/ME/脚步声") unless (!@step_anime && @stop_count > 0)
#~   end
#~ end
求解,各位好心人

360截图20170803094559203.jpg (8.96 KB, 下载次数: 19)

场所移动后,错误

场所移动后,错误
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-17 14:35

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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