Создать \ (Использовать) SKView как \ (в) фабрике \ (статический класс)
Я хочу создать SKView, который я могу использовать как фабрику для создания SKShapeNodes и «рендеринга» их в текстуры.
Но я не могу найти, как я мог бы инициализировать такую вещь, и мне совсем не повезло.
Как мне сделать автономный SKView для этой цели?
Или есть лучший способ сделать это, чтобы избежать использования игровой сцены?
Вот мои усилия по созданию фабрики,это жалуется, что текстура (от:) неоднозначна, Я понятия не имею, что это значит.
import SpriteKit
class Make: SKView{
static func circle() -> SKSpriteNode {
let myShapeNode = SKShapeNode(circleOfRadius: 100)
myShapeNode.fillColor = SKColor.lightGray
myShapeNode.strokeColor = SKColor.gray
let tex = texture(from: myShapeNode)
return SKSpriteNode(texture: tex)
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}
ОбновитьПосле более бесполезного времени в Google, я попытался найти инициализацию UIView, нашел и добавил этот фрагмент кода, который инициализируется в кадре, который кажется мнимым ... но это работает! Я не знаю почему ... но я не могу использовать его как метод фабрики, только как метод экземпляра, вот так:
import Foundation
import SpriteKit
class Make: SKView{
// added randomly found UIView initialisation "code"...
override init(frame: CGRect) {
super.init(frame: frame)
}
func circle() -> SKSpriteNode {
let myShapeNode = SKShapeNode(circleOfRadius: 100)
myShapeNode.fillColor = SKColor.lightGray
myShapeNode.strokeColor = SKColor.gray
let tex = texture(from: myShapeNode)
return SKSpriteNode(texture: tex)
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}