我正在开发一个游戏,该游戏涉及在屏幕上移动的对象(鱼),您需要用另一个可以上下移动的对象(钩子)来捕捉这些对象(鱼)。一旦物体接触到鱼的位置,就应该与鱼钩的位置相同。所以在开始接触(确实有效,我确定)我说,当鱼钩和鱼接触时,鱼的位置变得与鱼钩相同。
func didBeginContact(contact: SKPhysicsContact) {
let firstBody = contact.bodyA
let secondBody = contact.bodyB
if firstBody.categoryBitMask == physicsCategory.fishHook && secondBody.categoryBitMask == physicsCategory.greenFish || firstBody.categoryBitMask == physicsCategory.greenFish && secondBody.categoryBitMask == physicsCategory.fishHook{
CollisionWithfishHook(firstBody.node as! SKSprit
eNode, greenFish: secondBody.node as! SKSpriteNode)
}
}
func CollisionWithfishHook (fishHook: SKSpriteNode, greenFish: SKSpriteNode){
greenFish.position = CGPointMake(fishHook.position.x, fishHook.position.y)
}
出于某种原因,当我运行它并且他们联系时没有任何反应。我知道确实开始接触工作正常,因为当我告诉它在碰到鱼钩时将鱼移开时,它就可以工作。问题是我无法更改绿鱼的位置。为什么会这样,我能做些什么来解决它?