gpt4 book ai didi

ios - Q : Spritekit SKPhysics

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

我怎样才能分别从左向右滑动桨叶,让角色跳跃的桨叶停止,而其余的桨叶继续滑动?如何让4个桨以相同的速度慢慢地左右前后移动。请谢谢。

在这段代码中,我试图为所有这些创建一个 SKPhysics 实体,但我不知道如何做。

override func didMove(to view: SKView) {

background = self.childNode(withName: "background") as! SKSpriteNode
jellyghost = self.childNode(withName: "jellyghost") as! SKSpriteNode
paddle1 = self.childNode(withName: "paddle1") as! SKSpriteNode
paddle2 = self.childNode(withName: "paddle2") as! SKSpriteNode
paddle3 = self.childNode(withName: "paddle3") as! SKSpriteNode
paddle4 = self.childNode(withName: "paddle4") as! SKSpriteNode


jellyghost.physicsBody = SKPhysicsBody()
paddle1.physicsBody = SKPhysicsBody()
paddle2.physicsBody = SKPhysicsBody()
paddle3.physicsBody = SKPhysicsBody()
paddle4.physicsBody = SKPhysicsBody()
}

我正在尝试在上面制作一个 SKPhysics 主体,但我不知道该怎么做。在下面的代码中,我试图让 4 个桨叶中的每一个以相同的速度从左到右自行移动,而不让它们移动到触摸位置,但对我来说效果不佳。现在

override func touchesBegan(_ touches: Set, with event: UIEvent?) {

for touch in touches{
let location = touch.location(in: self)
paddle1.run(SKAction.moveTo(x: location.x,duration: 1.0))
paddle2.run(SKAction.moveTo(x: location.x, duration: 1.0))
paddle3.run(SKAction.moveTo(x: location.x, duration: 1.0))
paddle4.run(SKAction.moveTo(x: location.x, duration: 1.0))
}

}

我也想让我的角色跳到移动的桨上,但我不知道如何通过向上拖动屏幕并将其释放到桨的当前位置来让我的角色跳起来。我怎样才能让它不局限于不直接向上跳跃,而是足够灵活地跳跃 x 和 y。谢谢

最佳答案

是的,你可以。你需要给玩家和每个桨一个 SKPhysicsBody然后使用 SKPhysicsContactDelegate在你的场景中检测桨和玩家之间的碰撞。

当 Racket 和玩家发生碰撞时,如果您正在使用速度移动玩家,则可以运行如下例中的函数来停止 Racket 。

func stopPaddle(paddle: SKSpriteNode) {
paddle?.physicBody.velocity(CGVector(dx: 0, dy:0)
}

请稍后上传您的代码,因为它会更容易帮助您。

关于ios - Q : Spritekit SKPhysics,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42686905/

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