Я не могу заставить подкласс SKShapeNode принимать инициализатор. Чтобы обойти это, я попытался использовать пример, размещенный здесь. Удобные инициализаторы в подклассе Swift. Код, который я использую, приведен ниже.
class Ground1 : SKShapeNode {
override init() {
super.init()
print("Hello1")
}
convenience init(width: CGFloat, point: CGPoint) {
var points = [CGPoint(x: -900, y: -300),
CGPoint(x: -600, y: -100),
CGPoint(x: -100, y: -300),
CGPoint(x: 2, y: 150),
CGPoint(x: 100, y: -300),
CGPoint(x: 600, y: -100),
CGPoint(x: 900, y: -300)]
self.init(splinePoints: &points, count: points.count)
lineWidth = 5
strokeColor = UIColor.orange
physicsBody = SKPhysicsBody(edgeChainFrom: path!)
physicsBody?.restitution = 0.75
physicsBody?.isDynamic = false
print("Hello2")
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
}
}
При инициализации функция init() игнорируется и не используется. В результате никакая фигура не добавляется к сцене. Что я делаю не так ?
let ground = Ground1(width: 10, point: CGPoint.zero)
иaddChild(ground)
. Вы можете удалитьoverride init() {...}
иrequired init {...}
. - person 0x141E   schedule 30.12.2017