if (event.x - $game_player.x ).abs <= 3 and (event.y - $game_player.y ).abs <= 3 |
本帖最后由 灯笼菜刀王 于 2018-6-3 20:57 编辑 ![]() ![]() 改接触判定的话, 到game player 里面 找到这段 #-------------------------------------------------------------------------- # ● 接触事件启动判定 #-------------------------------------------------------------------------- def check_event_trigger_touch(x, y) result = false # 事件执行中的情况下 if $game_system.map_interpreter.running? return result end # 全事件的循环 for event in $game_map.events.values # 事件坐标与目标一致的情况下 if event.x == x and event.y == y and [1,2].include?(event.trigger) # 跳跃中以外的情况下、启动判定是正面的事件 if not event.jumping? and not event.over_trigger? event.start result = true end end end return result end 蓝色的这段就是坐标判断, 它的意思是, 当 事件的X 等于 X and 事件的Y 等于 Y and 事件的目标符合(与主角接触,与事件接触) 的情况下 改动前面X和Y的算法就可以自定义它的范围了. 给你个栗子: ![]() 那就变成 事件在距离主角 横向 3 格内 接触 就会触发 另外,直接这样改的话,你所有事件都会变成大范围触发, 所以,前面还要加个判断, 当event.id == XX的时候, 才用修改版的坐标, 否则就用平时的坐标 如果你能自己搞定这段, 咱就教你一个[用备注自定义任何事件的接触范围] 方法 ![]() |
日站有脚本能解決不过副作用很大..所以就呵呵了.. |
通常这种事情 的解决办法是把事件多复制几个 |
站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作
GMT+8, 2025-7-19 20:45
Powered by Discuz! X3.1
© 2001-2013 Comsenz Inc.