【发布时间】:2015-01-21 13:07:54
【问题描述】:
我正在制作 iOS 游戏(swift xcode)。
有一辆不断移动的汽车(SKAction)和一个你可以通过滑动手势移动的玩家。
一切都好,但现在我想要如果玩家触摸汽车,它会和汽车一样移动(它会粘在汽车上)
现在我该怎么做?
我尝试了很多东西,但没有一个能顺利运行..
我尝试使用
if (CGRectIntersectsRect(car.frame, player.frame)) {
car.position = player.position
}
这行得通,但玩家被踢到车中间,我不想要这个。 我想要的是,如果玩家接触到车底,它就会粘在车底上。
我该怎么做??
对于碰撞检测我也尝试使用:
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)
{
}
}
但我不知道在括号之间放什么才能让它像我想要的那样顺利运行。
【问题讨论】:
-
你为什么不使用精灵套件的内置碰撞检测?
-
你的意思是didbegincontact吗? (见编辑)
-
是的。请参阅我的答案以了解更多详细信息。
标签: xcode swift sprite-kit collision-detection collision