如何在Swift中设置速度

时间:2014-11-23 00:16:26

标签: swift sprite-kit

下面是Swift中Sprite Kit中的Enemy节点。我已经为节点设置了速度,但是当它产生时没有移动。 Xcode没有给我任何错误,我在这里做错了吗?

class Enemy: SKSpriteNode {

    init(imageNamed: String) {

        let imageTexture = SKTexture(imageNamed: imageNamed)
        super.init(texture: imageTexture, color: nil, size: imageTexture.size())

        self.name = "Enemy"

        self.physicsBody = SKPhysicsBody(rectangleOfSize: imageTexture.size())
        self.physicsBody?.dynamic = false
        self.physicsBody?.velocity = CGVectorMake(10.0,10.0)

    }
}

1 个答案:

答案 0 :(得分:7)

来自Apple的SpriteKit documentation

  

一个布尔值,指示物理模拟是否移动了物理实体。

     

<强>声明

     

夫特

     

var dynamic: Bool

     

目标C

     

@property(nonatomic, getter=isDynamic) BOOL dynamic

     

<强>讨论

     

如果值为NO,物理机构将忽略应用于它的所有力和脉冲。在基于边的主体上忽略此属性;它们是自动静止的。

正如0x141E所说,你必须使SKPhysicsBody动态,否则它不会移动。