我正在制作iOS游戏(swift xcode)。碰撞时将节点粘贴到另一个节点
有一辆不断移动的汽车(SKAction)和一个可以用滑动手势移动的玩家。
都好,但现在我想的是,如果玩家触摸的车,它会移动相同的同车(它被贴到汽车)
现在我该怎么办呢?
我试过很多东西,但他们没有工作顺利..
我试图用
if (CGRectIntersectsRect(car.frame, player.frame)) {
car.position = player.position
}
这工作,但球员被踢倒在车的中间,我不想这个。 我想要的是,如果玩家触摸到汽车的底部,它会粘在汽车的底部。
我该怎么做?
的碰撞detecion我还试图用:
func didBeginContact(contact: SKPhysicsContact!) {
var firstBody:SKPhysicsBody
var secondBody:SKPhysicsBody
if(contact.bodyA.categoryBitMask < contact.bodyB.categoryBitMask){
firstBody = contact.bodyA
secondBody = contact.bodyB
}else{
firstBody = contact.bodyB
secondBody = contact.bodyA
}
if((firstBody.categoryBitMask & CarCategory) != 0 && (secondBody.categoryBitMask & playerCategory) != 0)
{
}
}
,但我不知道该怎么括号之间放,使其顺利运作就像我想要的。
为什么不使用sprite套件中的内置碰撞检测? – Stefan 2014-11-23 21:47:54
你的意思是didbegincontact? (见编辑) – DNC 2014-11-23 21:52:39
是的。更多细节见我的答案。 – Stefan 2014-11-23 21:58:49