2015-12-05 1 views
0

Я пытаюсь очистить свой код, переместив его в разные классы в Swift. Однако при настройке класса меня путают инициализаторы. Я хочу передать только параметр позиции и размер параметра при настройке нового прямоугольника.Как настроить новый файл класса в Swift

let rectangle = SKShapeNode(rectOfSize: CGSize(width:390, height:200)) 
    rectangle.position = CGPointMake(frame.midX-10, frame.midY + 50) 
    rectangle.strokeColor = SKColor.blackColor() 
    rectangle.glowWidth = 1.0 
    rectangle.physicsBody = SKPhysicsBody(edgeChainFromPath: rectangle.path!) 
    rectangle.physicsBody?.dynamic = false 
    self.addChild(rectangle) 

Моя попытка:

class Walls: SKSpriteNode { 
var size = SKShapeNode(rectOfSize: CGSize(width:390, height:200)) 

init(postition: CGPoint, size: CGSize) { 
    super.init(color:SKColor.blackColor()) 
    self.size = SKShapeNode(rectOfSize: CGSize(width:390, height:200)) 
    self.position = CGPointMake(frame.midX-10, frame.midY + 50) 
    self.strokeColor = SKColor.blackColor() 
    self.physicsBody = SKPhysicsBody(edgeLoopFromRect: self.frame) 
    self.physicsBody!.dynamic = false 
} 

    required init?(coder aDecoder: NSCoder) { 
     fatalError("init(coder:) has not been implemented") 
    } 
} 
+1

В чем проблема с вашей попытки? – NobodyNada

+0

Помогло ли мое решение для вас? – FredLoh

+0

Он сделал, спасибо! Что может быть аргументом для Walls(), чтобы использовать его в моем классе GameScene? – nick

ответ

1
class Walls: SKSpriteNode { 

    required init?(coder aDecoder: NSCoder) { 
     super.init(coder: aDecoder) 
     didLoad() 
    } 

    func didLoad() { 
     let rectangle = SKShapeNode(rectOfSize: CGSize(width:390, height:200)) 
     rectangle.position = CGPointMake(frame.midX-10, frame.midY + 50) 
     rectangle.strokeColor = SKColor.blackColor() 
     rectangle.glowWidth = 1.0 
     rectangle.physicsBody = SKPhysicsBody(edgeChainFromPath: rectangle.path!) 
     rectangle.physicsBody?.dynamic = false 
    } 
} 
Смежные вопросы