为什么碰撞适用于基于凸多边形的physicsBody,但touchesMoved则没有

时间:2016-02-29 04:39:49

标签: events sprite-kit collision contact touchesmoved

我设置了一个SKSprite(s1),以使physicsBody具有来自路径的多边形:

s1.physicsBody = [SKPhysicsBody bodyWithPolygonFromPath:path];

和另一个(s2)具有从其周围的矩形生成的physicsBody:

s2.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:e.size];

并且两个精灵的碰撞很好,它们只发生在来自s1的多边形路径的实际像素和来自s2的周围矩形碰撞(而不是来自每个精灵的周围矩形)。这可以。但是当触摸周围的矩形时,s1中的touchesMoved(具有基于多边形的体)会发生 - 即使它具有基于多边形的physicsBody(参见上面用于设置s1的physicsBody的代码)。我该如何解决这个问题,并且只有当它应该被触发时才会触发,也就是当触摸实际像素(由基于多边形的physicsBody定义)时?

我尝试在点检测身体:

SKPhysicsBody * draggedOverBody = [self.physicsWorld bodyAtPoint:location];

draggedOverNode = draggedOverBody.node;

并且它只检测边界矩形而不是polkygon physicsBody。非常令人沮丧。

0 个答案:

没有答案