作为主题:
我的finalizing collision detection
platformer-style game
出现问题。
我使用矩形方法来执行此操作,并collision detection works fine
在那里。
问题是:我的游戏应该以哪种顺序查找colisions
?因为如果我首先检查玩家是否站在"平台然后在两侧发生碰撞,游戏变得混乱,然后玩家在空中(在跳跃期间)从侧面击中平台。它将玩家传送到"站在"位置,然后忽略侧面碰撞
当我设置游戏首先检查侧面碰撞时,当玩家落在平台上时,他被传送到平台的左侧或右侧。
我确实理解发生了什么,但我不知道如何解决这个问题
如果您希望我发布更多信息/代码,请告诉我
谢谢!
答案 0 :(得分:0)
在您的情况下,可能在顶部和左侧同时发生碰撞。我目前的想法是确定它从顶部和左侧碰撞的像素数。然后根据这些值,你只改变一个方向。
在这个例子中,让我们说蓝色物体正在下降。它与红色相交,顶部为3 px,左侧为15 px。结果是将对象3 px移动到其他对象上。因为在碰撞的基础上它更多"在顶部"对象而不是" side"它的。
以及如何获取可以使用的重叠值:Rectangle.Intersect(rectangle, rectangle)
并将返回这些值。
可能有更好的解决方案,但是现在我想到了什么。