【发布时间】:2017-05-22 18:25:11
【问题描述】:
所以我开始了一些大型的 pygame 项目,一切都或多或少地顺利。
但现在我真的很困惑如何检测碰撞的方向。
所以我得到了我的角色(2d sidescroller)和一个精灵组,用于现在所有矩形的障碍物。然而,现在碰撞检测工作正常,但是如果是这样,那么如何检测到障碍物的哪一侧与字符 rect 发生碰撞?
如果有人stumbles upon this question 添加:我最终实施的 janky 解决方案使用了一个“脚手架”,每个障碍物有四个(不可见)线,每侧一个。一旦检测到与特定障碍物的碰撞,我在字典中查找碰撞矩形周围的四条线,然后检查这些线中的哪一条当前正在与玩家精灵发生碰撞。它有点工作,但整个项目还是一团糟。
【问题讨论】:
-
获取两个对象的坐标并检查它们之间的关系。这取决于你想要的答案有多精细,但如果你只考虑一维,那么如果你知道有碰撞,你可以检查它们的 x 坐标的关系,看看障碍物的哪一侧是角色。
-
顺便说一句,这是您的第一个问题:您应该阅读一些有关如何提出好问题的信息,即发布相关代码等。如果人们真的知道您需要什么,那么提供帮助会容易得多帮助:)
-
@fbence 感谢您的回复,但是我如何才能获得从组中碰撞出来的特定障碍?
-
@fbence 当然,我想不出任何有用的代码部分
-
也许你的代码中定义了障碍物,而检测碰撞的部分可能很有用。在 pygame 中有一些方法可以做到这一点。此外,如果您认为 cmets 正在缩小您的实际问题范围(即您真的有兴趣了解发生碰撞的对象等),您可以编辑您的问题。