Swift 3.0 SpriteKit>用武力施加冲动?

时间:2016-09-26 18:39:50

标签: swift sprite-kit swift3

tl:dr - 我如何应用初始力来加速游戏中的精灵?

我正在完成本教程,以构建基于精灵工具包的游戏。 Link

我完全按照了一切,直到我必须消除引力并为球增加一个冲动,它才能正常工作。

问题是球的移动速度非常慢。当将重力加回到游戏中时,球再次以常规速度移动。

如何对球施加冲动,使其从一开始就快速移动?在教程中,gif显示球在没有额外代码的情况下高速移动。也许我做错了什么。

class GameScene: SKScene {



override func didMove(to view: SKView) {

super.didMove(to: view)


let borderBody = SKPhysicsBody(edgeLoopFrom: self.frame)

borderBody.friction = 0

self.physicsBody = borderBody

physicsWorld.gravity = CGVector(dx: 0.0, dy: 0.0)

let ball = childNode(withName: BallCategoryName) as! SKSpriteNode
ball.physicsBody!.applyImpulse(CGVector(dx: 2.0, dy: -2.0))

  }

}

1 个答案:

答案 0 :(得分:0)

"我如何对球施加冲动,使其从一开始就快速移动? 在教程中,gif显示球在没有额外代码的情况下高速移动。所以也许我做错了。"

我的猜测是你准确地复制了你的导师代码,但球移动得很慢?在这种情况下,问题在于节点BallCategoryName本身。我猜你设计它时球的重量可能比你的教练更重,因为教练很可能让它变得更小,所以它移动得更快,没有什么冲动。 从您拥有的代码中,您实际上没有引力。在PhysicsWorld中没有引力。我对你的建议是留下引力和冲动,并试图通过改变球的质量来获得正确的质量。这很可能是你和你的导师有所不同的地方。