我一直在开发一款游戏,玩家应该能够与我放在屏幕上的任何图像碰撞,而不使用像瓷砖地图一样多的矩形。我尝试使用基于像素的碰撞系统:Per-Pixel Collision detection。
但我一直遇到问题;我从Andrew Russell的“碰撞检测和碰撞响应之间的差异”中学到了很多东西。"因此,当我尝试改进游戏时,我一直遇到这个问题:YouTube Video。
之前我曾尝试使用基于磁贴的系统,但主要艺术家要求我找到一种方法,我们可以使用更动态的系统。我确实被引导到一个名为Farseer Physics Engine的物理引擎,Andrew Russell用于 Dark 和他正在制作的新游戏。
*我希望玩家对象不会陷入墙壁,并且可以使用其他方式创建碰撞系统(最后的手段是平铺地图)。
*玩家应该能够爬坡。
*玩家应该能够抓住墙上的东西(我已经知道如何做到这一点)
问题
如何让碰撞知道玩家何时会与地图发生碰撞? (我应该有更多的检测水平吗?)
在视频中我创建了3层矩形,每个矩形包含4个矩形,顶部,左侧,右侧和底部;即使这些层是阻止玩家进入地板的,玩家仍然会这样做,碰撞检测和碰撞响应真的有延迟吗?
假设我有一个包含,顶部,底部,左侧和右侧的检测盒,它向下延伸约5个像素,当它碰撞时,它会保持绳索相互撞击并说玩家无法通过此位置。那会有用吗?
*此外,当他碰撞时,玩家会以某种方式获得额外的跳跃。当玩家的顶部与物体碰撞时,它将停止动量,因为它也在左右触摸玩家,因为它在物体内部。我真的很想得到一些指导。
答案 0 :(得分:3)
大多数平台游戏(我敢说,大多数游戏引擎)都有某种情景符号/暗示来帮助行为定义。作为一个小例子,这里我们有一个“平台角”的情况。对不起基本形状。
基本上,我们有:
类似的游戏机制通常涉及某种正向量检测,以及您从该迭代中获得的动作库。例如:
角色的矢量将首先击中平台区域:
角色的矢量将首先击中角落提示区域:
现在,我们勇敢的角色试图跳跃并抓住一个角落。
当Actor的反应框进入右角提示的反应区域时,我们会进行一些检查:
TL / DR; 使用提示来帮助您的行为决策过程。