凌灵道:“当然!”
她心说自己就是游戏开发者,要是还找不到出口,那岂不是要被笑掉大牙?虽然这个关卡不是她做的,但还是不能忍!这涉及到程序员的尊严!
“其实……”
凌灵喃喃道。
其实凌灵还有个办法,那便是撞墙,其原理还是利用了碰撞检测。
因为游戏的运行需要节省资源,所以碰撞检测并不是连续的,而是每隔一段时间才会检测一次。当然这个时间间隔会非常的小,控制在人眼察觉范围之外,比如每帧一次,即1/24秒。
碰撞检测的原理,是计算两个碰撞的物体之间有无重叠,如果重叠了,就把玩家推回去。
同时,游戏中角色的运动的计算,是在原有坐标基础上,再加一个小小的运动偏移量(dx, dy, dz)。即意味着运动并非连续,而是离散[1]的。
学过初中物理的朋友们都知道,位移(运动偏移量)= 速度 * 时间。
所以,当两个物体之间相对速度较小时,碰撞检测比较精确;
当速度变大时,碰撞的重叠就会增加,可能会出现游戏中穿模的视觉bug;
当速度继续变大,大到运动偏移量直接超过结界collider的厚度,碰撞检测就会直接跳过,认为玩家和物体之间没有发生碰撞,进而产生穿墙的bug,凌灵也就能因此顺利穿过结界。
那么,究竟要如何实现这个bug呢?
答案就是——需要凌灵不断高速用头撞墙。
虽然说,穿越之后的游戏世界为了无限逼近真实,肯定将帧数和算法精度都提高很多,但其底层原理就是如此。
只要撞的次数够多,力气够大,速度够大,那就总有一次,能够实现穿墙的概率嘛!
但是,凌灵摸了摸自己的脑门,想象着她头破血流的样子,觉得不可以接受……
而且她现在可是有痛觉的啊!!!她又不是受虐狂,干嘛闲的没事撞自己?!!要是疼痛可以忍耐,她最开始就直接找林修坦白身份,挨他千刀万剐了!何必还要费劲吧啦的通关副本帮林修练级?
“不行不行!这条路绝对不行!”
凌灵想到这里,使劲摇了摇头。哪怕自己最后不得不为了那个坑爹的目标死在林修手下,但在过程中也一定要好好爱护自己。
雨冥渊奇怪的看她一眼:“你没事吧?”
凌灵打个哈哈过去了:“小失误,小失误。”
心想既然不能搞邪门歪道卡bug,那还是乖乖从逻辑链上找思路吧。于是凌灵搬块石头坐到雨冥渊面前,道:“来吧,咱俩理一下思路。”
理思路,是凌灵多年编程生涯养成的习惯。
以前凌灵遇到问题卡住时,就喜欢随手拉个人过来,跟他或她讨论一下,而往往就在描述问题的过程中,凌灵便能自己找到答案。
后来凌灵才知道,原来这种方法还有个学名,叫做小黄鸭调试法[2]。
据说上古时期,功力深厚的程序大师们总会随身携带一只小黄鸭,遇到bug时,只要向鸭子逐行解释代码,便能灵光一闪,福至心灵,从而解决问题。
凌灵道:“你当一下我的小绿鸭。”
现在,她就当雨冥渊是她的倾诉对象。
但雨冥渊却将头一歪,道:“鸭?我为什么要当鸭?”
凌灵:“……”
为什么!!!
为什么讨论问题这种严肃的事情,经他嘴里说出来就变得这么微妙!
不过……倒也不是不可以,印象中小苏还给他捏了八块腹肌呢……
凌灵抬头偷瞥一眼,看着雨冥渊那张清心寡欲的脸上满是疑惑,又觉得好像自己想法太猥琐了。
“咳!”她赶紧轻咳一声,“这不是重点,你能不能别老在乎这些细节?我找你帮忙是要理思路的!”
雨冥渊眉心微皱,但看凌灵不想说明,便也不再追问,只道一声:“好。”
“那我们就从离开朱雀神庙开始吧,我可能说的很抽象。”
于是凌灵也正了正颜色,开始追溯近日往事。
“大概一周前,我们从朱雀神庙进入了兰溪古荡。在经历过神秘浮尸、雾气幻觉、善恶相、以及尸体消失事件之后,我们便决定先送林修到试练塔。这是第一个节点。”
雨冥渊点头:“不错。”
凌灵又道:“然后第二个节点。咱俩听到传说,谢晋和小仙加入队伍,隔天又捡到司徒小星。在兰溪古荡瞎转三天之后,终于找到目的地,没想到却被弹涂鱼妖坑了,最后掉入陷阱。”
凌灵大致描述完毕,问道:“怎么样,有漏下的吗?”
她描述的虽然抽象,但雨冥渊还是听懂了,点头道:“没有,很全。”
厘清事件之间的逻辑,毕竟和