下了个流川枫的视野系统,很有意思。
于是我受到了一个启发,来了灵感——
在一部RPG游戏中,事件的设置是相当有讲究的。
假如碰到很长的桌子或围墙,你想检视它怎么办?
像这样设置一大长串事件么?
错!
假如一大堆士兵在追你,想让他们在一定距离内看见你怎么办?
设置一大堆并行事件么?
错!
这样会相当耗费系统资源,尤其是围墙或NPC较多的状况下。那么
这个脚本会帮你解决类似问题。
像这样设置:
事件就会拥有它自己的“视野”范围,如果你处于这个
范围之内,事件就会自己触发——不必非得
挨到什么物体之前!
并且,你还可以修改视线范围的形状!
第1个参数:事件的“长”,缺省为普通事件
第2个参数:事件的“宽”,缺省为普通事件
第3个参数:事件的“形状”:0或缺省为矩形,非0值为菱形(菱形时取长宽中的较大值为视野范围)
第4个参数:是否要跑到事件的正面才算“看见”:0或缺省为否(全向),非0为是(定向)。
范例工程下载:
============================================================
具体使用举例:
1.譬如设定一个长篱笆,那么在事件地图上设一个决定键触发的事件
并命名为“围墙,4,1,0,0”(记住一定要使用英文半角逗号隔开)
那么意义为:该事件触发范围——长为4,宽为1,形状为矩形,上下左右四方位触发
2.设定一个士兵,命名为“士兵,3,3,0,0”
那么意义为:该事件触发范围——长为3,宽为3,形状为矩形,上下左右四方位触发
3.设定一个醉汉,命名为“醉汉,3,3,1,0”
那么意义为:该事件触发范围——长为3,宽为3,形状为菱形,上下左右四方位触发
4.设定一个醉汉,命名为“醉汉,3,3,1,1”
那么意义为:该事件触发范围——长为3,宽为3,形状为菱形,只有正面交锋时才触发
注意事项:如果事件区域设定为菱形(即第三个参数为非0值),那么视野区域的长、宽由较大值决定(即前两个参数的较大值),譬如:
“醉汉,2,3,1,1”
“醉汉,3,2,1,1”
“醉汉,3,3,1,1”
的意义是一样的,长宽都是3。
但是当区域为矩形时(即第三个参数为0或缺省),就不一样了,长宽各自为政。
本帖来自P1论坛作者slick,因Project1站服务器在国外有时候访问缓慢不方便作者交流学习,经联系P1站长fux2同意署名转载一起分享游戏制作经验,共同为国内独立游戏作者共同创造良好交流环境,原文地址:
https://rpg.blue/forum.php?mod=viewthread&tid=136661 若有侵权,发帖作者可联系底部站长QQ在线咨询功能删除,谢谢。