2013年4月16日
员工对话:Corona SDK 中的光线投射
在我们新的每周员工对话环节的第二版中,Corona Labs 的核心工程师 Albert Yale 谈论了光线投射,以及如何使用它来探测世界的属性,以及如何使用它来使游戏 AI 更智能。Albert 还告诉我们,为了在从 Corona SDK Daily Build 1080 开始的游戏中实现新的 Corona physics.rayCast 方法,我们需要了解什么。
如果您错过了第一个员工对话视频,请务必观看 David Rangel 谈论 Corona SDK Starter 以及 Corona SDK Pro 即将进行的增强。
我们希望您喜欢新的环节。如果您对即将到来的员工对话有主题建议,请务必将其留在 Corona Geek 论坛中。
感谢您的观看!
收听和评分
Jacques
发布于 23:59, 4月16日不得不说这对我是救命稻草!还有即将到来的 Graphics 2,我希望它能尽快推出。我的新游戏《僵尸战争》严重依赖于在海军陆战队员开枪之前以及玩家实际看到它之前检测可能的子弹碰撞。
因此,如果我理解正确,使用光线投射,我现在可以发射一条不可见的线来检查潜在的子弹是否会直接击中建筑物或树木或僵尸,然后如果子弹不会到达僵尸,则阻止海军陆战队员开枪?因为现在我必须发射一个不可见的物理对象(如果你愿意,可以将其视为伪传感器子弹),并且只有在僵尸对象被击中并且没有其他任何东西被击中时,玩家才会看到动作(这自然会浪费 CPU)。
如果我的假设是正确的,那么与发射“传感器”物理对象相比,光线投射线的速度和 CPU 使用率会有多大差异?如果它会好很多,那么你们在引入光线投射方面做得非常出色。
最后,使用光线投射在 Corona 中投射阴影会有多容易(或者我应该说内存/CPU 密集)?
Albert
发布于 10:47, 4月17日@Jacques:光线投射比传感器便宜,并且通常更容易管理。
对性能的影响因游戏类型而异。
一种使用光线投射来创建阴影的简单方法是找到角色下方的地面位置,并将阴影斑点纹理放置在该位置。
顺便说一句,请查看最新每日构建版本 (1087) 中的 physics.reflectRay()。玩起来很有趣。
Matt Pringle
发布于 10:11, 4月18日嗨,Albert
光线投射做得不错。不过,这对于 Corona 来说并不是什么新鲜事,你迟到了 2 年 🙂
我已经在 Lua 中启动并运行了它,它会扫描 Lime 瓦片地图并计算玩家可以看到的内容,或者在这种情况下,火炬的光线。
不幸的是,它需要的处理能力比 3GS 所能承受的还要多,所以它只不过是一个技术演示。我现在可能会再次使用它,因为它现在是原生的了。
http://forums.coronalabs.com/topic/6453-field-of-view-shadow-casting-demo/?hl=%2Bshadow+%2Bcasting
Jacques
发布于 02:17, 4月17日很抱歉之前重复发帖(也许你可以指出是否已收到帖子?)。
无论如何,只是想让你们知道,新的光线投射 API 非常棒!它完美地适用于《僵尸战争》,并且绝对是一个游戏规则改变者!
不确定光线投射碰撞检测在内存/CPU 方面比“传感器”物理对象碰撞检测减轻了多少,但一切运行良好!
Chris Leyton
发布于 02:51, 4月17日嗨,Charles - 很高兴看到这些,我认为这有助于在文档中包含的内容之外为新功能添加更深层次的解释。希望你对添加到 Corona 的其他附加功能遵循类似的概念。
关于新主题,我想看到你专注于高级主题 - 我们都知道 Corona 易于使用,任何人都可以上手,等等...
但我认为要继续让人们认可 Corona 是一个严肃的框架,我们需要看到更棘手的主题得到处理 - 诸如 AI 实现、游戏逻辑等...通常是突破 Corona 的极限。希望我们在 Graphics 2.0 发布时看到很多关于它的内容。
Jacques
发布于 03:14, 4月17日我完全同意 AI 和游戏逻辑的实现,我 75% 的代码都是 AI 和游戏逻辑。
Charles McKeever
发布于 08:59, 4月18日我同意 Chris。我们将努力在列表中添加更多技术会议。