我想制作一个 SKView,我可以将其用作工厂来制作 SKShapeNode 并将它们“渲染”为纹理。
但是我找不到如何初始化这样的东西,而且完全没有运气。
我如何为此目的制作独立的 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")
}
}
更新
在谷歌上浪费了更多时间之后,我尝试搜索 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")
}
}