斯威夫特2:删除慢慢增加速度

时间:2016-03-11 15:31:34

标签: swift sprite-kit

我试图在我的应用中影响精灵的移动速度。当我对精灵施加速度时,速度会慢慢增加,直到达到最大速度。我正在寻找一种方法来消除速度的平滑增加,并且始终保持完全相同的速度(直到我改变速度)

如果您有任何问题,请随时添加评论。

    enemy1 = SKSpriteNode(texture: enemyTexture)
    enemy1.position = CGPoint(x: CGRectGetMidX(self.frame) - 300, y: CGRectGetMidY(self.frame) - 300)
    enemy1.physicsBody = SKPhysicsBody(texture: enemyTexture, size: enemyTexture.size())
    enemy1.physicsBody!.affectedByGravity = false
    enemy1.physicsBody!.allowsRotation = false
    self.addChild(enemy1)

这是我应用于精灵的速度。我正在更新功能中继续移动速度:

override func update(currentTime: NSTimeInterval) {

    enemy1.physicsBody!.velocity = CGVectorMake(70, 0)

}

2 个答案:

答案 0 :(得分:0)

您是否尝试为每个更新应用力矢量,而不是更改速度:

override func update(currentTime: NSTimeInterval) {

    enemy1.physicsBody!.applyForce = CGVectorMake(70, 0)

}

答案 1 :(得分:0)

我尝试了你的代码,它对我来说正常工作(精灵从一开始就具有恒定的速度)。它总是像那样工作。您可以通过在空的SpriteKit项目中粘贴代码来检查这一点。目前,您所描述的内容看起来实际上是在使用applyForce方法,而不是直接更改速度矢量。

解决方案当然是直接改变速度属性,就像你说你现在正在做的那样。您可能会意外地在代码中的某处覆盖此行为,因为您所描述的内容不可重现(使用您提供的代码)。