2014-11-23 84 views
3

下面是Swift中Sprite Kit中的Enemy節點。我已經爲節點設置了速度,但是當它產生時沒有移動。 Xcode給了我沒有錯誤,是否有什麼我在這裏做錯了?如何在Swift中設置速度

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) 

    } 
} 
+0

使用skaction做出動作 – Roecrew 2014-11-23 00:46:04

+5

你需要設置'self.physicsBody?.dynamic = true'。 – 0x141E 2014-11-23 00:56:54

+2

非洲或歐洲斯威夫特? :)其實,@ 0x141E有答案。你不能做一個靜態的身體移動。 – rickster 2014-11-23 01:02:39

回答

6

從蘋果公司的SpriteKit documentation

一個布爾值,指示物理體是否由物理模擬移動。

宣言

夫特

var dynamic: Bool

目標C

@property(nonatomic, getter=isDynamic) BOOL dynamic

討論

如果該值爲NO,則物理體忽略施加於其上的所有力和衝量。該屬性在基於邊界的物體上被忽略;它們自動靜態。

由於0x141E表示,您必須使您的SKPhysicsBody動態,否則它將不會移動。