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