=begin
#==============================================================================
■使用说明
请在游戏图片文件夹的“Pictures”中放入你需要的雾图片命名为 fogs
X为赋值内容
召唤雾脚本
$soul_rgss3_multifog = true
改变速度和能见度
@speed = x
$multi_fog_visible = x
随机移动雾数量变化:
$fog_rand = x
以下是雾的运动变化
$fog_horzmovement = true
^ 所有雾水平移动
$fog_horzmovement = false
^ 停止水平运动
$fog_vertmovement = true
^ 所有雾垂直运动
$fog_vertmovement = false
^ 停止垂直运动
$fog_randmovement = true
^ 雾随机运动
$fog_randmovement = false
^ 禁止随机运动
#==============================================================================
=end
# ----------------------------------#
# 整个游戏之中改变状况的数值集合
# 在地图上改变速度和能见度-
# ----------------------------------#
$soul_rgss3_multifog = false # 设定为ture则保持雾
@speed = 1 # 速度
$multi_fog_visible = 150 # 能见度调节
$fog_horzmovement = true # 开启水平
$fog_vertmovement = false # 开启垂直
$fog_rand = 800 # 随机运动的值(范围在1~800)
# ----------------------------------#
#==============================================================================
# ** Scene_Map
#------------------------------------------------------------------------------
# 这个类执行地图画面处理。
#==============================================================================
class Scene_Map < Scene_Base
attr_accessor :fog
attr_accessor :visible
# -----------------------------------------------------------------#
# 开始
# -----------------------------------------------------------------#
alias soul_fog_start start
def start
super
SceneManager.clear
$game_player.straighten
$game_map.refresh
$game_message.visible = false
create_spriteset
create_all_windows
@menu_calling = false
rgss3_create_multi_fog
end
=begin
#==============================================================================
# 创建更多雾的方法
下面的显示了雾的创建。基本上你可以复制粘贴~
粘贴所有脚本创建多更多雾~
例子:
on rgss3_create_multi_fog:
@multifogspr = Plane.new
@multifogspr.bitmap=Cache.picture(fogname)
@multifogspr.opacity=0
@multifogspr.blend_type=0
找到另一个函数,调用这些玩意儿和粘贴。
请确保每个函数可以被声明和使用。
其他功能:
@multifogspr.ox+=1
注意这一行:
@multifogspr.ox+=1
@multifogspr2.ox+=2
@multifogspr2.oy+=1
@multifogspr3.oy+=2
您可以创建您希望的名称和地点的雾表示。
#==============================================================================
=end
def rgss3_create_multi_fog
fogs = #array of fogs in your Picture folder.
# -----------------------------------------------------------------#
# 创建雾的精灵
# 请保证你的雾图形在图片的文件夹!
# -----------------------------------------------------------------#
@multifogspr = Plane.new
@multifogspr.bitmap=Cache.picture(fogs)
@multifogspr2 = Plane.new
@multifogspr2.bitmap=Cache.picture(fogs)
@multifogspr3 = Plane.new
@multifogspr3.bitmap=Cache.picture(fogs)
# -----------------------------------------------------------------#
# 不透明度
# -----------------------------------------------------------------#
@multifogspr.opacity=0
@multifogspr2.opacity=0
@multifogspr3.opacity=0
# -----------------------------------------------------------------#
# 混合类型
# -----------------------------------------------------------------#
@multifogspr.blend_type=0
@multifogspr2.blend_type=1
@multifogspr3.blend_type=2
end
# -----------------------------------------------------------------#
# 更新
# -----------------------------------------------------------------#
alias soul_fog_upd update
def update
super
$game_map.update(true)
$game_player.update
$game_timer.update
@spriteset.update
update_scene if scene_change_ok?
# -----------------------------------------------------------------#
# Activates the Multiple Fog
# -----------------------------------------------------------------#
if $soul_rgss3_multifog
if @multifogspr.opacity<$multi_fog_visible
@multifogspr.opacity+=$multi_fog_visible/60
end
end
# -----------------------------------------------------------------#
# Deactivates the Multiple Fog
# -----------------------------------------------------------------#
if $soul_rgss3_multifog==false
if @multifogspr.opacity>0
@multifogspr.opacity-=$multi_fog_visible/30
end
end
# -----------------------------------------------------------------#
# 不透明性和运动的其他功能
# -----------------------------------------------------------------#
@multifogspr2.opacity=@multifogspr.opacity
@multifogspr3.opacity=@multifogspr.opacity
if $fog_horzmovement
@multifogspr.ox+=1
@multifogspr2.ox+=2
end
if $fog_vertmovement
@multifogspr2.oy+=1
@multifogspr3.oy+=2
end
if $fog_randmovement
@multifogspr.ox+=rand($fog_rand)
@multifogspr2.ox+=rand($fog_rand)
end
end
end