我正在尝试制作一个关于球的游戏,并使用sprite工具包和IOS 7的物理体。我的问题是在接触/碰撞时休息物体。这是didBeginContact
中的代码:
[contact.bodyA setVelocity:CGVectorMake(0, 0)];
[contact.bodyB setVelocity:CGVectorMake(0, 0)];
contact.bodyA.resting = YES;
contact.bodyB.resting = YES;
实际上contact.bodyA
已经休息但我只是设置它以确保两个对象都设置为休息。问题是,即使我设置contact.bodyA(or B).resting = YES
,球也不会相互接触。
这就是我想要的:
http://i.stack.imgur.com/p8JTk.png
有时会发生这种情况:
http://i.stack.imgur.com/LWORO.png
正如你在第二张照片中看到的那样,蓝色球与其他球有点远。是否还有其他方法可以在接触点磁力球?
答案 0 :(得分:0)
这可能是物理机构的一个问题。我假设你正在使用[SKPhysicsBody bodyWithCircleOfRadius:spriteWidth/2]
。你确定你的精灵图像是正确的大小,并匹配你正在为物理体构造函数提供的半径吗?
也许您可以将对象的位置存储在属性prevPosition
中,并且当检测到碰撞时,将精灵节点的位置返回到prevPosition
并将正文设置为resting
}?
`