加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
本帖最后由 tz5514 于 2014-2-24 10:19 编辑
这个脚本是自己正在开发的游戏中因为需要写的一个小小功能
可以让事件方便的设定其行走图一些不能在事件编辑器里直接设定的属性资讯
其中包含了行走图位置(画面上的相对x,y像素)、合成方法、不透明度
设置范例图:
实际效果范例图:可以见到虽然在地图编辑器中格子根本没对准在火炬炉正中央,但透过脚本功能设定能够修正到很精准的显示位置
调用详细请见脚本开头的注释
#============================================================================== # ■ 事件行走图调整 by tz5514 #------------------------------------------------------------------------------ # 此脚本能够自由的调整事件的行走图位置(画面上的相对x,y像素)、合成方法、不透明度 # 各项功能可以个别独立使用 # # 使用方法: # 在需要调整之事件分页的最开头包含注释 # # @bitmap_move[x,y] # 其中x和y的范围是-999~999,必须为整数 # # @bitmap_blend[方式] # 其中方式可填 "+"(代表加法) 或 "-"(代表减法) 或 "="(代表普通) # # @bitmap_opacity[o] # 其中o的范围是0~255,必须为整数 # #============================================================================== class Game_CharacterBase attr_accessor :opacity # 不透明度 attr_accessor :blend_type # 合成方式 end class Sprite_Character < Sprite_Base alias tz5514_event_bitmap_move_set_character_bitmap set_character_bitmap def set_character_bitmap tz5514_event_bitmap_move_set_character_bitmap if @character!=nil && @character.class.to_s=="Game_Event" && @character.list.kind_of?(Array) for element in @character.list do if element.code==108 or element.code==408 if /@bitmap_move\[(\W?)(\d{1,3})\,(\W?)(\d{1,3})\]/ =~ element.parameters[0] self.ox+= ($1=="-")? $2.to_i : $2.to_i * -1 self.oy+= ($3=="-")? $4.to_i : $4.to_i * -1 end if /@bitmap_blend\[(\W)\]/ =~ element.parameters[0] @character.blend_type = 0 if $1=="=" @character.blend_type = 1 if $1=="+" @character.blend_type = 2 if $1=="-" end if /@bitmap_opacity\[(\d{1,3})\]/ =~ element.parameters[0] @character.opacity = $1.to_i end else break end end end end end
#==============================================================================
# ■ 事件行走图调整 by tz5514
#------------------------------------------------------------------------------
# 此脚本能够自由的调整事件的行走图位置(画面上的相对x,y像素)、合成方法、不透明度
# 各项功能可以个别独立使用
#
# 使用方法:
# 在需要调整之事件分页的最开头包含注释
#
# @bitmap_move[x,y]
# 其中x和y的范围是-999~999,必须为整数
#
# @bitmap_blend[方式]
# 其中方式可填 "+"(代表加法) 或 "-"(代表减法) 或 "="(代表普通)
#
# @bitmap_opacity[o]
# 其中o的范围是0~255,必须为整数
#
#==============================================================================
class Game_CharacterBase
attr_accessor :opacity # 不透明度
attr_accessor :blend_type # 合成方式
end
class Sprite_Character < Sprite_Base
alias tz5514_event_bitmap_move_set_character_bitmap set_character_bitmap
def set_character_bitmap
tz5514_event_bitmap_move_set_character_bitmap
if @character!=nil && @character.class.to_s=="Game_Event" && @character.list.kind_of?(Array)
for element in @character.list do
if element.code==108 or element.code==408
if /@bitmap_move\[(\W?)(\d{1,3})\,(\W?)(\d{1,3})\]/ =~ element.parameters[0]
self.ox+= ($1=="-")? $2.to_i : $2.to_i * -1
self.oy+= ($3=="-")? $4.to_i : $4.to_i * -1
end
if /@bitmap_blend\[(\W)\]/ =~ element.parameters[0]
@character.blend_type = 0 if $1=="="
@character.blend_type = 1 if $1=="+"
@character.blend_type = 2 if $1=="-"
end
if /@bitmap_opacity\[(\d{1,3})\]/ =~ element.parameters[0]
@character.opacity = $1.to_i
end
else
break
end
end
end
end
end
|