Я прототип игр с использованием фигур, и spritekit был потрясающим для этого перед быстрым.
Теперь, когда я пытаюсь расширить SKSpriteNode и добавить свою функцию init, я не могу назвать super.init(цвет, размер).
У меня нет способа вызвать код, который создает текстуру формы.
Мне нужно знать, как вызвать эту функцию init или как создать текстуру формы, чтобы я мог переопределить назначенный init, а затем вызвать его, используя мою текстуру формы.
EDIT: Вот точный код, который я делаю, и я делаю почти то же самое в другом расширенном классе SKSprite node:
class TetrisCell : SKSpriteNode
{
let length = 10;
convenience init(color:UIColor) {
var size = CGSize(width: length, height: length);
//Not allowed to call a super convenience init, must call non-convenience init
super.init(color: color, size: size);
}
}
Я понимаю, почему это не позволит мне, поэтому я ищу другой способ. На данный момент у TetrisCell нет текстуры. Я бы хотел просто использовать фигуры для удобства.
Из того, что я могу сказать, мне нужно вызвать super.init(texture:, color:, size:) для инициализации моего SKSpriteNode. Если нет способа сделать вышеуказанный код, то я хотел бы знать, что они установили для SKTexture, поэтому я могу имитировать его. Что-то вроде super.init(текстура: SKTexture.blankTexture) или что-то в этом роде. Что бы они ни добавляли, поскольку текстура управляется атрибутом color:, в то время как мой пиксель 1x1, похоже, не зависит от атрибута color:.