如图, 队列行进的时候开关门会导致后面的队友被夹脸或者穿门而过。
于是我尝试了一下事件设置,现在会判断最后一个人的位置再关门。素材仍然来自上面的这款游戏。
首先在脚本里添加:
RUBY 代码 - class Game_Party
- attr_reader :characters
- end
复制代码
然后设置门事件,一共2页。
第1页是玩家接触触发:
第2页并行处理,出现条件是独立开关 A 为 ON:
下面是公共事件的内容:
第1页的开门事件,就是一般的设置:
第2页的关门事件,会判断队伍里(Train Actors)最后一名角色的位置,然后执行关门事件。
旧的设置
新的设置利用了RB提供的脚本(3楼),然后修改了穿透 OFF 的时机,这样就不会穿墙了:
新的脚本:
RUBY 代码 - all_chars = [$game_player]
- size = $game_party.actors.size - 2
- if size >= 0
- all_chars += $game_party.characters[0..size]
- end
- ev = $game_map.events[@event_id]
- @close_door = !all_chars.any?{ |ch|
- ch.x == ev.x && ch.y == ev.y
- }
复制代码
发张示意图,可以看到最后一个角色还在门上的时候,门仍然是开着的,但是此角色走出去之后门就关上了。
如此设置就可以做到不被门夹住~
本帖来自P1论坛作者九幽魔道,因Project1站服务器在国外有时候访问缓慢不方便作者交流学习,经联系P1站长fux2同意署名转载一起分享游戏制作经验,共同为国内独立游戏作者共同创造良好交流环境,原文地址: https://rpg.blue/forum.php?mod=viewthread&tid=400873 若有侵权,发帖作者可联系底部站长QQ在线咨询功能删除,谢谢。 |