Project1
标题:
超简单雾功能
[打印本页]
作者:
红灯
时间:
2010-10-31 21:42
标题:
超简单雾功能
又是雾= =!
之前发的那个是有点复杂,后来想想其实可以借助远景图的设置来实现简单的雾功能,于是弄了这个。
=begin
简单的地图效果
先把雾效果图重命名为含“Fog”的名字(比如"010_Fog"),放入Parallax 文件夹。
使用时在地图设置的远景图里选择你想要的雾效果图片
可以设置x/y轴的移动速度。
就这么简单,不过缺点在于只能全局设定雾的参数,不能每张更改透明度和色调等。
适合怕麻烦想快速实现简单雾效果的同学。
BY 红灯
=end
#-------------------------全局设定参数----------------------------------
module Fog_Set
#雾的透明度设置
Fog_Opacity = 100
#雾的合成方式设置,0为正常,1为加法,2为减法
Fog_Blend = 0
#雾的色调合成,数组内依次为 红,绿,蓝,数值范围0~255
Fog_Tone = [0,0,0]
end
#-----------------------------------------
class Spriteset_Map
alias fog_in initialize
alias fog_up update
alias fog_dispose dispose
alias fog_up_par update_parallax
def initialize
create_fog
fog_in
end
def create_fog
@fog = Plane.new(@viewport)
@fog.z = 999
@fog.opacity = Fog_Set::Fog_Opacity
@fog.blend_type = Fog_Set::Fog_Blend
@fog.tone.red = Fog_Set::Fog_Tone[0]
@fog.tone.green = Fog_Set::Fog_Tone[1]
@fog.tone.blue = Fog_Set::Fog_Tone[2]
end
def update_parallax
return if $game_map.parallax_name.include?("Fog")
fog_up_par
end
def update_fog
return unless $game_map.parallax_name.include?("Fog")
if @fog_name != $game_map.parallax_name
@fog_name = $game_map.parallax_name
if @fog.bitmap != nil
@fog.bitmap.dispose
@fog.bitmap = nil
end
if @fog_name != ""
@fog.bitmap = Cache.parallax(@fog_name)
end
Graphics.frame_reset
end
@fog.ox = $game_map.calc_parallax_x(@fog.bitmap)
@fog.oy = $game_map.calc_parallax_y(@fog.bitmap)
end
def update
fog_up
update_fog
end
def dispose
fog_dispose
dispose_fog
end
def dispose_fog
@fog.dispose
end
end
复制代码
1.jpg
(13.13 KB, 下载次数: 11)
下载附件
保存到相册
2010-10-31 21:36 上传
2.jpg
(44.04 KB, 下载次数: 14)
下载附件
保存到相册
2010-10-31 21:36 上传
如果不怕麻烦,请移步
http://rpg.blue/thread-157253-1-1.html
= =!
最后,简单的范例。
简单雾.rar
(264.61 KB, 下载次数: 186)
2010-10-31 21:40 上传
点击文件名下载附件
作者:
壬穹雷光
时间:
2010-10-31 21:44
前排支持前辈~~~~~
作者:
38571240
时间:
2010-10-31 22:07
请问,如果设置一个开关来开启/关闭雾效果,该怎样做呢?
作者:
qazsdwexc
时间:
2010-10-31 22:22
发现更好的,实在太需要了!感激不不尽尽!
作者:
红灯
时间:
2010-10-31 22:58
回复
38571240
的帖子
可以在create_fog 里加个条件分歧,当开关某打开时,既值为true时,不透明度用默认设置,为false 时,不透明度为0,就行了。
if $game_switches[10]
@fog.opacity = Fog_Set::Fog_Opacity
else
@fog.opacity = 0
end
作者:
狠、陌生
时间:
2010-11-1 06:45
提示:
作者被禁止或删除 内容自动屏蔽
作者:
summer92
时间:
2010-11-1 12:58
索引吧索引~~~~,希望效果好一点....LZ辛苦
作者:
九夜神尊
时间:
2010-11-2 22:32
:lol
作者:
黑崎一护
时间:
2010-11-3 19:17
我不懂脚本,请问这是可以直接使用的?
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1