赞 | 0 |
VIP | 0 |
好人卡 | 1 |
积分 | 1 |
经验 | 2994 |
最后登录 | 2016-1-18 |
在线时间 | 72 小时 |
Lv1.梦旅人
- 梦石
- 0
- 星屑
- 50
- 在线时间
- 72 小时
- 注册时间
- 2008-10-27
- 帖子
- 70
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
本帖最后由 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
复制代码
脚本请用脚本功能(那个"<>"按钮)发 by fux2
|
|