2014-11-23 5 views
3

Ниже находится вражеский узел в комплекте Sprite в Swift. Я установил скорость для узла, но когда он появляется, движения нет. 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

+5

Вам нужно установить 'self.physicsBody? .dynamic = true'. – 0x141E

+2

Африканский или европейский Swift? :) На самом деле, @ 0x141E имеет ответ. Вы не можете сделать движение неподвижного тела. – rickster

ответ

6

От компании Apple SpriteKit documentation:

значение Boolean, указывающее, является ли тело физика тронуты моделирования физики.

Декларация

Свифта

var dynamic: Bool

Objective-C

@property(nonatomic, getter=isDynamic) BOOL dynamic

Обсуждение

Если значение НЕТ, физическое тело игнорирует все силы и импульсы, применяемые к нему. Это свойство игнорируется на телах на краю; они автоматически статичны.

Как говорится в 0x141E, вы должны сделать свой SKPhysicsBody динамический, или он не будет двигаться.

Смежные вопросы