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

Project1

 找回密码
 注册会员
搜索
Project1 查看内容

更改角色的移动帧数、移动帧速率

2006-1-20 00:00| 发布者: 柳柳| 查看: 4202| 评论: 0|原作者: 亿万星辰

摘要:    作者 亿万星辰  版本与更新 2006年1月  相关网址  点此进入讨论贴  范例工程 脚本功能 更改行走图的帧数。默认RMXP行走是4帧的图,可以用这个增多帧数。
 

 作者

亿万星辰

 版本与更新

2006年1月

 相关网址

 点此进入讨论贴

 范例工程



脚本功能

更改行走图的帧数。默认RMXP行走是4帧的图,可以用这个增多帧数。

使用方法

首先插入脚本,然后设置方面是根据行走图文件名决定帧数的

例:
角色1,行走图文件为:001-Fighter01.png  则为4帧
角色1,行走图文件为:002-Fighter02_5.png  则为5帧
角色3,行走图文件为:003-Fighter03_8.png  则为8帧

使用此脚本后,行走图文件名要有一定的限制~~~不要出现两个下划线……

另(柳柳编按):

刷新速度方面,全脚本搜索
if @anime_count > 18 - @move_speed * 2
(默认是在Game_Character 2的23行)

把那个18改小就能缩短刷新间隔时间。

其它

需要配套素材,虐待美工专用。

 

 
 

 脚本内容


#========================================
# 本脚本来自www.66rpg.com
#========================================
class Game_Character
  #--------------------------------------------------------------------------
  # ● 刷新画面
  #--------------------------------------------------------------------------
  def update
    # 跳跃中、移动中、停止中的分支
    if jumping?
      update_jump
    elsif moving?
      update_move
    else
      update_stop
    end
    # 动画计数超过最大值的情况下
    # ※最大值等于基本值减去移动速度 * 1 的值
    if @anime_count > 18 - @move_speed * 2
      # 停止动画为 OFF 并且在停止中的情况下
      if not @step_anime and @stop_count > 0
        # 还原为原来的图形
        @pattern = @original_pattern
      # 停止动画为 ON 并且在移动中的情况下
      else
        # 更新图形
        fps = @character_name.split(/_/)[1] != nil ? @character_name.split(/_/)[1].to_i : 4
        @pattern = (@pattern + 1) % fps
      end
      # 清除动画计数
      @anime_count = 0
    end
    # 等待中的情况下
    if @wait_count > 0
      # 减少等待计数
      @wait_count -= 1
      return
    end
    # 强制移动路线的场合
    if @move_route_forcing
      # 自定义移动
      move_type_custom
      return
    end
    # 事件执行待机中并且为锁定状态的情况下
    if @starting or lock?
      # 不做规则移动
      return
    end
    # 如果停止计数超过了一定的值(由移动频度算出)
    if @stop_count > (40 - @move_frequency * 2) * (6 - @move_frequency)
      # 移动类型分支
      case @move_type
      when 1  # 随机
        move_type_random
      when 2  # 接近
        move_type_toward_player
      when 3  # 自定义
        move_type_custom
      end
    end
  end
end

#===============================================
# ■ Sprite_Character
#-------------------------------------------------
#  角色显示用脚本。监视 Game_Character 类的实例、
# 自动变化脚本状态。
#===============================================

class Sprite_Character < RPG::Sprite
 #---------------------------------------
 # ● 更新画面
 #-----------------------------------------
 def update
   super
   # 元件 ID、文件名、色相与现在的情况存在差异的情况下
   if @tile_id != @character.tile_id or
      @character_name != @character.character_name or
      @character_hue != @character.character_hue
     # 记忆元件 ID 与文件名、色相
     @tile_id = @character.tile_id
     @character_name = @character.character_name
     @character_hue = @character.character_hue
     # 元件 ID 为有效值的情况下
     if @tile_id >= 384
       self.bitmap = RPG::Cache.tile($game_map.tileset_name,
         @tile_id, @character.character_hue)
       self.src_rect.set(0, 0, 32, 32)
       self.ox = 16
       self.oy = 32
     # 元件 ID 为无效值的情况下
     else
       self.bitmap = RPG::Cache.character(@character.character_name,
         @character.character_hue)
       fps = @character.character_name.split(/_/)[1] != nil ? @character.character_name.split(/_/)[1].to_i : 4
       @cw = bitmap.width / fps

       @ch = bitmap.height / 4
       self.ox = @cw / 2
       self.oy = @ch
     end
   end
   # 设置可视状态
   self.visible = (not @character.transparent)
   # 图形是角色的情况下
   if @tile_id == 0
     # 设置传送目标的矩形
     sx = @character.pattern * @cw
     sy = (@character.direction - 2) / 2 * @ch
     self.src_rect.set(sx, sy, @cw, @ch)
   end
   # 设置脚本的坐标
   self.x = @character.screen_x
   self.y = @character.screen_y
   self.z = @character.screen_z(@ch)
   # 设置不透明度、合成方式、茂密
   self.opacity = @character.opacity
   self.blend_type = @character.blend_type
   self.bush_depth = @character.bush_depth
   # 动画
   if @character.animation_id != 0
     animation = $data_animations[@character.animation_id]
     animation(animation, true)
     @character.animation_id = 0
   end
 end
end


脚本使用的通用说明

约定:本脚本来源于网络,任何人不得随意将本脚本应用于商业用途,如需转载,必须保留所有版权信息,如果是国内作者,最好征求作者同意——否则发生任何后果,66RPG不予负责。使用此脚本表示您默认接受上述约定。

说明:不同脚本之间、尤其是不同作者脚本之间会有冲突,本站会对已知脚本冲突进行简单说明。测试新脚本请下载本站提供的测试文件或者新建工程测试。脚本不要贪多,否则可能会互相冲突对您的游戏造成未知的影响。如果脚本内或者本站内提供了解释,请务必完全看完解释后再使用,如有问题,请到论坛讨论。


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

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

GMT+8, 2025-2-17 13:24

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

返回顶部