Swift 2:缓慢增加速度

Swift 2:缓慢增加速度,swift,sprite-kit,Swift,Sprite Kit,我试图在我的应用程序中影响精灵的移动速度。当我将速度应用于精灵时,它的速度会缓慢增加,直到达到最大速度。我正在寻找一种方法来消除速度的平稳增长,并且一直保持完全相同的速度(直到我改变速度) 如果您有任何问题,请随时添加评论 enemy1 = SKSpriteNode(texture: enemyTexture) enemy1.position = CGPoint(x: CGRectGetMidX(self.frame) - 300, y: CGRectGetMidY(self.f

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

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

    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)

}

您是否尝试过对每次更新应用力向量,而不是更改速度,如下所示:

override func update(currentTime: NSTimeInterval) {

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

}

您是否尝试过对每次更新应用力向量,而不是更改速度,如下所示:

override func update(currentTime: NSTimeInterval) {

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

}

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


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

我尝试了您的代码,它对我来说是正确的(sprite从一开始就具有恒定的速度)。一直都是这样。您可以通过将代码粘贴到空的SpriteKit项目中来检查这一点。目前,您所描述的看起来像是实际使用了
applyForce
方法,而不是直接更改速度向量


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

sprite的物理属性是什么?环境中有什么力量(重力、阻尼等)?@GoZoner刚刚更新了问题。精灵不受重力影响。是否尝试将physicsBody.dynamic设置为false?因为你想要一个恒定的速度,这将消除所有施加在它身上的力。精灵的物理特性是什么?环境中有什么力量(重力、阻尼等)?@GoZoner刚刚更新了问题。精灵不受重力影响。是否尝试将physicsBody.dynamic设置为false?因为你想要一个恒定的速度,这将消除所有施加在它身上的力。