私はスプライトを完全にコードで作ることができますが、私はspriteをgamescene.sksに配置し、それをgamescene.swiftで参照してIBOutletのように変更します。IBOutletのようにコードでgamescene.sksに追加されたスプライトをどのように参照しますか?
私はgamescene.sksに「ビーム」という名前のスプライトでこれを行うことができました:
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
let touch = touches.first
let touchLocation = touch!.location(in: self)
let beam = childNode(withName: "beam") as! SKSpriteNode
if let body = physicsWorld.body(at: touchLocation) {
if body.node!.name == "leftTap" {
beam.rotateBy(CGFloat(10))
print("Began touch on Left")
}else if body.node!.name == "rightTap"{
beam.rotateBy(CGFloat(-10))
print("Began touch on right")
}
}
}
}
で
let beam = childNode(withName: "beam") as! SKSpriteNode
そして、それは動作しますが、私は当初gamescene.sksにスプライトを配置ここでそれを参照しました。私はこの行配置するときしかし:私はそれを変更したとき、私はエラーを取得する
let beam = SKSpriteNode(withName: "beam") as! SKSpriteNode
を、その後:gamescene.swiftのどこにも
let beam = childNode(withName: "beam") as! SKSpriteNode
を、それは私がこれまでそれを変更する必要があるというエラーよりもスロー"引数ラベル '(withName :)は使用可能なオーバーロードと一致しません"
私はスプライトキットを初めて使い、いくつかのアドバイスをいただければ幸いです!
ありがとうございました!私がgamescene.sksでスプライトに付けた名前であるはずの "// someObject"ですか?何が2つあるのですか? – genericguy25
はい、これはSKSシーンファイルで名前を付けたものです。 //は、すべての子を走査し、別のオブジェクト内にネストされているかどうかにかかわらず、この名前に一致する子を見つけます。 –
私はこれを試してみます、ありがとう! – genericguy25