赞 | 406 |
VIP | 0 |
好人卡 | 11 |
积分 | 390 |
经验 | 242285 |
最后登录 | 2024-11-29 |
在线时间 | 5725 小时 |
Lv5.捕梦者
- 梦石
- 0
- 星屑
- 39034
- 在线时间
- 5725 小时
- 注册时间
- 2006-11-10
- 帖子
- 6622
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
本帖最后由 灯笼菜刀王 于 2018-6-19 15:09 编辑
R叔斑竹的 "VA式灯光脚本" 传送门其中有三个地方这样写
# 初期化
alias :_dark__initialize :initialize unless private_method_defined?(:_dark__initialize)
def initialize
_dark__initialize()
create_dark()
update_dark()
end
# 更新
alias :_dark__update :update unless method_defined?(:_dark__update)
def update
_dark__update()
update_dark() if !@dark_sprite.nil? and !@dark_sprite.disposed?
end
# 结束处理
alias :_dark__dispose :dispose unless method_defined?(:_dark__dispose)
def dispose
dispose_dark()
_dark__dispose()
end
请教下, alias 后面带unless , 这个是和通常的条件分歧一样么? 但是unless后面的method_defined?并没有定义, 难道它是和 defined? 一样么? 这部分实在无法理解,请前辈指教~~
========================================
实际上碰到的问题 :
咱是想用烛光系统来伪造"火纹的战争迷雾效果", 通过隐藏我方角色视野范围外的敌人来造成视觉上的看不到, 然后用烛光来形成一个可见的范围表示, 感觉这样比全图铺黑块更有气氛也更省FPS, 也更省事~=3=
这部分咱已经实现了, 接下来, 夜战当然要有能提高视野的东东啦, 所以加入了"探照灯" 这个本子们二战最喜欢用的夜战装备, 使用后能增加2格视野(就是火纹的火把啦)。 功能上,咱已经实现了, 但是问题出在:视觉上~ 视野范围变大了,烛光自然要跟着变大不是么?
咱的设想 : 改变事件的 light_type ,让普通状态下使用 1型, 探照灯状态下使用2型。
普通地图上, 事件这样设置
是有效的, 运行后 烛光原本1型 直接 变成 5型。
但是, ZTBS的地图里, 同样直接改事件本身的light_type就无效。
p 出来的结果显示 light_type确实变成2, 状态也确认附加, 视野范围也增加了, 就是烛光不能像前面普通地图那样直接改变类型。
过程图
最上面那个就是2号烛光的效果, 下面的两个是1号烛光, 光标所在的位置, 敌人在我方的视野外,所以隐藏了行走图
------------------
使用技能, 这个技能引用上面的那个公共事件, 附加状态并改变light_type
-----------------
p 出来了,可以确定 light_type确实是改了
-----------------
=。= 动画还没放完, 视野已经变大了,原本隐藏的敌人显示出来了....
----------------
过程结束, 最后烛光还是没改变。
ZTBS的重命名咱已经都整合到默认里了, 区别就是 in_tactics 的开和关, 所以可以排除ZTBS地图的Spriteset_Map和普通地图不同
所以说, 为什么普通地图改light_type能直接变烛光, ZTBS就不行呢, 是刷新问题还是什么原因呢? 咱尝试过$scene.update ,$game_map. refresh, $game_map.events[a.event_id].refresh也一样没用= =.....
PS: 如果采用"打开独立开关使用另一页的注释" 这种方法的话, ZTBS地图也是可以直接改变烛光......... 所以这个烛光的刷新机制到底是啥呢? 感觉和最开始咱看不懂的那三个方法有关系吧
|
|