Я создал свой собственный простой класс под названием SKGlowNode в качестве подкласса SKSpriteNode. Первоначально я хотел иметь возможность создавать собственный класс и вводить все параметры инициализации в редакторе, как вы можете с помощью SKSpriteNode. Однако я обнаружил, что это пока невозможно, и мне пришлось попытаться сделать это с пользовательскими данными. Я установил свой узел в редакторе следующим образом:
И просто сделал пользовательский класс следующим образом:
Вот мой класс для SKGlowNode
import Foundation
import SpriteKit
class SKGlowNode: SKSpriteNode{
let colors = [UIColor.blue,UIColor.green,UIColor.red,UIColor.orange,UIColor.purple,UIColor.yellow,UIColor.white,UIColor.magenta]
required init?(coder aDecoder: NSCoder) {
super.init(texture: texture, color: .black, size: size)//error here
let glowIndex = self.userData?.value(forKey: "glowColorIndex") as? Int ?? 0
let glowTexture = self.userData?.value(forKey: "glowTexture") as? String ?? "squareBg"
addGlow(radius: 75, texture: SKTexture(imageNamed: glowTexture), color: colors[glowIndex])
//This glow function works and is an extension from a SKSpriteNode where it creates a glow from a texture with certain color
}
}
Очевидно, я получаю сообщение об ошибке в указанной строке, потому что я не могу инициализировать суперкласс, используя эти переменные, но у меня нет Идея, что нужно сделать, чтобы инициализировать его значениями, уже определенными в редакторе, как это будет работать, если бы не было пользовательского класса. Спасибо