Project1
标题:
请问关于视野遮罩的脚本
[打印本页]
作者:
IRO
时间:
2010-12-26 19:22
标题:
请问关于视野遮罩的脚本
本帖最后由 IRO 于 2010-12-26 19:40 编辑
下面是我以前找到的脚本,内容是可以让画面出现这种效果:
就是加一片黑色的遮罩,控制看得见的范围
可是最近我开始实用的时候...发现它居然会把显示的图片都盖在黑色遮罩下面
我用了获取物品就会有提示的脚本,提示的视窗也会被盖过去...
小的完全不懂脚本,请问有没有人能教我该怎么改写掉这个问题...? T_T
找到这个脚本的地方已经关站了,也没有记下作者,如果有不妥我会删除
class Spriteset_Map
#控制視線距離的變數編號
SIGHTRANGE_VARIABLE_INDEX =13
#控制視線限制的開關編號
LIMITEDSIGHT_SWITCHES_INDEX = 03
#定義視線距離
def get_sightrange
return $game_variables[SIGHTRANGE_VARIABLE_INDEX]
end
#定義視線限制是否工作中
def get_working?
return $game_switches[LIMITEDSIGHT_SWITCHES_INDEX]
end
alias gsr_01_initialize initialize
def initialize
#生成fow (fog of war)平面, 並且z值比霧平面(3000)還高
@fow = Plane.new(@viewport1)
@fow.z = 4000
@fow.bitmap = Bitmap.new(640, 480)
gsr_01_initialize
end
alias gsr_01_dispose dispose
def dispose
gsr_01_dispose
@fow.dispose
end
alias gsr_01_update update
def update
#TODO: update及render效能還可改進
gsr_01_update
#更新
sightrange = self.get_sightrange
@fow.visible = self.get_working?
return unless @fow.visible
#計算視距
range = 16+32*sightrange
xx = $game_player.screen_x
yy = $game_player.screen_y
#計算遮罩所在的矩型
r = Rect.new(xx-range, yy-range-16, 2*range, 2*range)
#繪製到fow後緩充
@fow.bitmap.fill_rect(Rect.new(0, 0, 640, 480), Color.new(0, 0, 0))
@fow.bitmap.fill_rect(r, Color.new(0, 0, 0, 0))
@fow.bitmap.stretch_blt(r, FOW_Mask.get_instance, Rect.new(0, 0,
FOW_Mask::Size, FOW_Mask::Size), 255)
end
end
class FOW_Mask < Bitmap
#遮罩解析度 內定200*200
Size = 200
#使用Singleton pattern
private_class_method :new
@@mask = nil
def FOW_Mask.get_instance
@@mask = new unless @@mask
return @@mask
end
def initialize
super(Size, Size)
r = Size/2
#加速運算
r2 = r*r
for i in 0...Size
for j in 0...Size
x = r
y = r
dis2 = (i-x)*(i-x) + (j-y)*(j-y)
if dis2 > r*r
self.set_pixel(i, j, Color.new(0,0,0))
else
n = dis2
m = r2
opa = 1.0*n/m*255
self.set_pixel(i, j, Color.new(0,0,0, opa))
end
end
end
end
end
复制代码
[line]1[/line]
脚本请用脚本功能(那个"<>"按钮)发 by fux2
作者:
enghao_lim
时间:
2010-12-26 19:33
直接修改物品提示窗口的z值应该就可以了。
作者:
IRO
时间:
2010-12-26 19:49
回复
enghao_lim
的帖子
原来脚本可以这样发,谢谢版主的提示...
>>enghao_lim
谢谢,把z值调低就可以了!
请问z值是优先度的意思吗?设得太低的话会不会被什么东西压过去?
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1