VA 的很多整合工程都是不能全信的,冲突bug一堆,脚本名称也乱改,版本还可能不是新的,也没有做好相对的说明。 视界限制脚本,是用在比如主角进入洞窟后,点火把照明只能看到一定范围内的视野,视野外是暗的,看不见的,您看视界脚本中有设定视界大小的值,但没有设定明暗度,也没有设定不透明度,它只是在一个圆形内显示出正常的地图画面。 烛光脚本则可以调整整个画面的色调,让整个画面像黄昏,或黑夜,但依稀看得到画面中的东西,只有光照的地方是正常的明亮度,还可以设定不同的事件或图块位置有光照,设定光照的形状,好一点的脚本可以设定光照的中心是在事件或玩家本身,或者是事件或玩家手持灯具的位置,也就是稍微偏离人物行走图中心,会依照玩家面向而改变光照的方向,这个不是视界脚本中有的功能,甚至像 tseyik 大人提到的 Khas Awesome Light Effects 还能设定成动态光照,也就是光不是固定一个圆的,它会闪烁晃动,就像真的烛火在摇曳发出的光。 像这样,烛光系统只是能分辨出光影明暗而已,不会把光线外的画面遮住的。 视界脚本虽然也可以做出照明范围的效果,但实际上把它作为烛光效果并不实用,它最好的用处还是限制视野,有好的烛光脚本,为什么要拿视界脚本来充当呢?您说是吧? |
视界脚本不是烛光系统啊!怎么一直看到有人把两者混淆了,虽然视界也用一张圆形的图,但实际用途不一样,有真正的光照脚本,为何总是要拿视界脚本当烛光系统用呢? |
用其他烛光系统 1. Khas Awesome Light Effects http://forums.rpgmakerweb.com/in ... some-light-effects/ 2. HN_Light http://www.tktkgame.com/ |
所以LZ的问题是什么?= = |
其实我想到一个很蠢的办法 就是 复制这个脚本六次 用六个开关来实现 ········ 但是 问题是 这样 就不能有两个光源了呀 ············ 怎么办啊 我脑壳疼 |
#-------------------------------------------------------------------------- # ● 物件初期化 #-------------------------------------------------------------------------- def initialize(viewport = nil) super(viewport) self.z = 199 self.bitmap = Bitmap.new(Graphics.width, Graphics.height) @bitmap_shadow = Bitmap.new("Graphics/System/sight_shadow") end #-------------------------------------------------------------------------- 这句是设置 光线的图片吧 有没有办法 改成 多几个呀 比如更据玩家的方向 切换 4个张 其他的 一个光强 一个光弱 就好了 ··········· |
#============================================================================== # ★ RGSS3_视界制限 Ver1.1 #============================================================================== =begin 作者:tomoaky 首发网站:ひきも记 设定号码的地图限制视野。 写在角色,职业,是在武器(防护具)的备注中的标签 能补正视野限制的尺寸。 例)<视界补正 32> 视界32点扩大広。 只有战斗成员进行视野补正价值的计算。 游戏变量(默认情况下,#9),可以调整大小使用视图领域。 加入上述所有设置,将获得的实际大小限制的能见度。 然而,如果尚未设置能见度限制的地图上都是无效的。 因为每帧都会重绘整个屏幕的Sprite 将会有所加重。 操作所需的图像 Graphics/System/sight_shadow.png 游戏变量使用(默认设置) 0009 2012.02.05 Ver1.1 ・调整Z坐标使计时器使不被遮住 ・加使用游戏变量补正视野限制尺寸的功能(通过变量可做成开/関效果) 2012.01.20 Ver1.0 公开 =end #============================================================================== # □ 设定项目 #============================================================================== module TMBLSIGHT # 指定几号的地图进行视界制限 # 例)SIGHT[3] = 128 # 设置地图号码3的视野能见度128点矩形 SIGHT = {} SIGHT[12] = 320 SIGHT[14] = 320 VN_SIGHT = 2 # 设定尺寸大小补正在游戏中使用的游戏变量 end #============================================================================== # □ RPG::BaseItem #============================================================================== class RPG::BaseItem #-------------------------------------------------------------------------- # ○ 视界制限补正値 #-------------------------------------------------------------------------- def sight_power unless @sight_power @sight_power = /<视界补正\s*(\-*\d+)\s*>/ =~ @note ? $1.to_i : 0 end @sight_power end end #============================================================================== # ■ Game_Actor #============================================================================== class Game_Actor #-------------------------------------------------------------------------- # ○ 视界制限补正値 #-------------------------------------------------------------------------- def sight_power result = 0 feature_objects.each {|object| result += object.sight_power} result end end #============================================================================== # □ Sprite_SightShadow #============================================================================== class Sprite_SightShadow < Sprite #-------------------------------------------------------------------------- # ● 物件初期化 #-------------------------------------------------------------------------- def initialize(viewport = nil) super(viewport) self.z = 199 self.bitmap = Bitmap.new(Graphics.width, Graphics.height) @bitmap_shadow = Bitmap.new("Graphics/System/sight_shadow") end #-------------------------------------------------------------------------- # ● 解放 #-------------------------------------------------------------------------- def dispose self.bitmap.dispose @bitmap_shadow.dispose super end #-------------------------------------------------------------------------- # ● 帧更新 #-------------------------------------------------------------------------- def update super if TMBLSIGHT::SIGHT[$game_map.map_id] self.visible = true self.bitmap.clear w = TMBLSIGHT::SIGHT[$game_map.map_id] $game_party.battle_members.each{|actor| w = [w + actor.sight_power, 48].max} w = [w + $game_variables[TMBLSIGHT::VN_SIGHT], 48].max x = $game_player.screen_x - w / 2 y = $game_player.screen_y - w / 2 - 16 rect = Rect.new(x, y, w, w) self.bitmap.stretch_blt(rect, @bitmap_shadow, @bitmap_shadow.rect) color = Color.new(0, 0, 0) self.bitmap.fill_rect(0, 0, Graphics.width, y, color) self.bitmap.fill_rect(0, y + w, Graphics.width, Graphics.height - y - w, color) self.bitmap.fill_rect(0, y, x, w, color) self.bitmap.fill_rect(x + w, y, Graphics.width - x - w, w, color) else self.visible = false end end end #============================================================================== # ■ Spriteset_Map #============================================================================== class Spriteset_Map #-------------------------------------------------------------------------- # ● 物件初期化 #-------------------------------------------------------------------------- alias tmblsight_spriteset_map_initialize initialize def initialize tmblsight_spriteset_map_initialize create_sight_shadow end #-------------------------------------------------------------------------- # ○ 作成视界制限Sprite #-------------------------------------------------------------------------- def create_sight_shadow @sight_shadow_sprite = Sprite_SightShadow.new(@viewport2) end #-------------------------------------------------------------------------- # ● 解放 #-------------------------------------------------------------------------- alias tmblsight_spriteset_map_dispose dispose def dispose tmblsight_spriteset_map_dispose dispose_sight_shadow end #-------------------------------------------------------------------------- # ○ 解放视界制限Sprites #-------------------------------------------------------------------------- def dispose_sight_shadow @sight_shadow_sprite.dispose end #-------------------------------------------------------------------------- # ● 帧更新 #-------------------------------------------------------------------------- alias tmblsight_spriteset_map_update update def update update_sight_shadow tmblsight_spriteset_map_update end #-------------------------------------------------------------------------- # ○ 更新视界制限Sprites #-------------------------------------------------------------------------- def update_sight_shadow @sight_shadow_sprite.update if @sight_shadow_sprite end end |
站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作
GMT+8, 2024-11-25 10:32
Powered by Discuz! X3.1
© 2001-2013 Comsenz Inc.