gpt4 book ai didi

ios - Spritekit 改变重力

转载 作者:可可西里 更新时间:2023-11-01 02:01:11 24 4
gpt4 key购买 nike

我一直在尝试通过使用来改变重力

override func touchesBegan(_ touches: Set<UITouch>, with event: 
UIEvent?) {
self.physicsWorld.gravity = CGVector(dx: 0, dy: 0)
}

但这似乎根本没有改变引力。当我在 didMove 函数中使用相同的代码时,它起作用了。

编辑 1:

这是我的 SKSpriteNode 的代码:

spaceship = SKSpriteNode(imageNamed: "Spaceship")

spaceship.position = CGPoint(x: self.frame.width / 2, y: self.frame.height / 2)
spaceship.setScale(0.1)
spaceship.physicsBody?.isDynamic = true
spaceship.physicsBody = SKPhysicsBody(circleOfRadius: spaceship.size.width / 2);


addChild(spaceship)

最佳答案

它在 didMove 中起作用,因为对象不会受到任何力作用,因此它们仍然不动

当你在游戏中途改变重力时,物体仍然在之前的重力作用下运动——改变重力只会影响/ future /施加到物体上的力。

您需要在触摸功能中更改您想要影响的节点的重力和速度,以获得所需的效果。

此外,为简洁起见,您可以直接访问 dy 值,而无需为其分配新的 CGVector——这也有助于提高性能。

spaceship.physicsBody!.velocity.dy = 0

关于ios - Spritekit 改变重力,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46259524/

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