代码之家  ›  专栏  ›  技术社区  ›  StuStirling

两个矩形之间的碰撞检测

  •  0
  • StuStirling  · 技术社区  · 14 年前


    很简单的问题,我相信你会嘲笑我的。
    我有两个长方形的玩具和墙壁。
    我有一个条件是……

    if (CGRectIntersectsRect(playerRect,wall)) {
          //handle collision here
    }
    

    我现在遇到的问题是,找出哪一面实际上碰到了墙的矩形。
    我需要知道,因为然后我会阻止玩家移动,这取决于哪边被击中。
    谢谢你的帮助
    迪斯科舞厅

    2 回复  |  直到 14 年前
        1
  •  0
  •   Mark Adams    14 年前

    我将向“player”对象添加一些direction属性。这样,当你检测到碰撞时,你只需要检查一下玩家在碰撞前的移动方式,然后做出相应的反应。

        2
  •  0
  •   John Carter    14 年前

    为对象的每一侧创建一个宽度为1(或高度为1,取决于侧边),并查找与侧边而不是整个对象的交点。如果你的物体在每次碰撞检查中移动速度超过1像素,那么你要检查侧面。 除了 检查整个对象

    推荐文章