下了个流川枫的视野系统,很有意思。 
于是我受到了一个启发,来了灵感——
 
在一部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在线咨询功能删除,谢谢。  |