10年前,小编还是一个学生的时候就接触了RPG Maker XP,那时候因为在上学,所以有很多梦想,特别记得就是想制作一个属于自己的游戏,因为那时候日本的动画和漫画在中国是非常流行的直到至今,80后的童年一直都是在动漫所影响下,所以经常有一些特别的幻想,想把自己的幻想变成游戏分享给自己的好友伙伴们,那时候找制作游戏工具就搜索到RPG Maker XP这款软件!
图片来源于steam
那时候最多人交流的论坛就是66RPG,可惜现在已经不是以前讨论RPGMAKER的地方了,为什么忽然感触而写这编文章呢?可能是因为我偶然情况下见到steam里面有RPG Maker XP的正版卖,为了补票我就立马买全家桶,直接就买了RPG Maker MV,RPG Maker VA,RPG Maker VX和RPG Maker XP,不知道有多少人和我一样为了当年用盗版所以才补的票呢?不过正版的除了RPG Maker MV有中文之外,其他全都是日文和英文,不过用习惯了就没有问题,现在都30了,居然情怀起来想把以前想做的游戏做起来,因为以前想做游戏后来学业繁忙就慢慢忘记了,到现在都不知道以前那个工程在哪台尸体电脑里沉睡了,所以准备重拾童心在空闲的时间里制作一款属于自己的游戏,所以以后的文章我会分享一些用到的脚本代码和事件工程,和大家一起交流学习一番! 今次分享的是MV/VX/VA行走图改成XP能用的脚本!
RUBY 代码
#============================================================================
# VX/VA 行走图兼容
#----------------------------------------------------------------------------
# By : RyanBern
#----------------------------------------------------------------------------
# 使用方法:
# 由于 VX/VA 的行走图都是一张 png 里面有多个人,所以使用的时候先用图片处理
# 工具(PS、美图均可,不要用windows画图)把原 png 分解成单个人的,这个不需
# 要任何美工基础。然后分割出来的素材命名的时候在文件名最前面加上"$"符号即可
# 表示这个素材来自 VX/VA。
# 注意,使用VX/VA行走图时,XP选择图形的时候仍然是四等分的,因此你要选择第
# 二列的方块作为行走图的原始图案(即停止帧)
#----------------------------------------------------------------------------
# 更新记录
# 2014/12/24 修复行走图静止帧的问题
#============================================================================
class Game_Player
alias rb_refresh_20141224 refresh
def refresh
rb_refresh_20141224
@original_pattern = character_for_xp? ? 0 : 1
end
end
class Game_Character
# RB追加定义
def character_for_xp?
return self.character_name.slice(/^\$/) != "$"
end
#--------------------------------------------------------------------------
# ● 刷新画面
#--------------------------------------------------------------------------
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
# 更新图形
# RB modified
@pattern = (@pattern + 1) % (character_for_xp? ? 4 : 3)
# RB modified END
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
class Sprite_Character
#--------------------------------------------------------------------------
# ● 更新画面
#--------------------------------------------------------------------------
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)
# RB modified
@cw = bitmap.width / (self.character.character_for_xp? ? 4 : 3)
# RB modified END
@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
大家直接复制然后用就可以了,不过要记得VX,VA,MV的行走图前面一定要加个$,如果不是就识别不到啊!
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.