gpt4 book ai didi

swift - 设置位置后更改节点的位置。(SpriteKit)

转载 作者:行者123 更新时间:2023-11-30 13:15:14 24 4
gpt4 key购买 nike

我正在开发一款游戏,其中涉及在屏幕上移动的物体(鱼),您需要用另一个可以上下移动的物体(钩子(Hook))来捕捉它们。一旦物体接触,鱼的位置就会与鱼钩的位置相同。所以在开始接触时(我确信这确实有效),我说,当鱼钩和鱼接触时,鱼的位置变得与鱼钩相同。

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)

}

出于某种原因,当我运行它并且他们进行联系时,没有任何反应。我知道开始接触工作正常,因为当我告诉它在接触鱼钩时将鱼移走时,它就工作了。问题是我无法更改绿鱼的位置。这是为什么?我可以做什么来解决它?

最佳答案

didBeginContact方法中改变鱼的位置只会改变鱼的位置一次——鱼和鱼钩接触的那一刻。您需要在 update 方法中继续更新鱼的位置。

我会在您的 GameScene 类中创建一个名为 fishToUpdate 的类变量,当您“ Hook ”一个变量时,设置 fishToUpdate = greenFish (或任何捕获的内容) 在您的 didBeginContact 方法中。然后在 update 方法中,通过 fishToUpdate.position = FishHook.position 更新鱼的位置。

关于swift - 设置位置后更改节点的位置。(SpriteKit),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38299762/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com