Swiftで開発中のゲームでは、SKSceneを使用してさまざまな背景を選択して選択することができます。背景が背中を埋めると、次のまたは前の背景を見ることができるボタンがあります。私はすでに、現在の背景を保存し、ゲームシーンに移行する「選択」ボタンをテストしました。今度は、バックグラウンドによって異なる「選択」ボタンを表示したいと思います。各ボタンは異なる価格を表示し、プレーヤーのコインに異なる金額を引きます。SKSceneのボタンを非表示にする
マイコードは、プレーヤーが「次へ」と「前の」ボタンをタップすると、現在、バックを変更することができます。しかし、私はそれぞれの背中のための '選択'ボタンを表示するのに問題があります。ここに私のコードの関連部分です:
import SpriteKit
class ShopScene: SKScene {
var backNumber = 100
var backRemainder = 0
var background = SKSpriteNode()
var coinNumber = UserDefaults.standard.integer(forKey: "coinSaved")
var backName:String? = UserDefaults.standard.string(forKey: "backSaved")
override func didMove(to view: SKView) {
if backName != nil {
backName = UserDefaults.standard.string(forKey: "backSaved")
} else {
backName = "back1"
}
background.texture = SKTexture(imageNamed: "\(backName!)")
self.addChild(background)
let nextButton: NButton = NButton(defaultButtonImage: "next", activeButtonImage: "nextP", buttonAction: nextAction)
addChild(nextButton)
let previousButton: PButton = PButton(defaultButtonImage: "previous", activeButtonImage: "previousP", buttonAction: previousAction)
addChild(previousButton)
let selectButton: SButton = SButton(defaultButtonImage: "select", activeButtonImage: "selectP", buttonAction: selectAction)
addChild(selectButton)
func nextAction() {
backNumber += 1
backRemainder = backNumber % 2
switch backRemainder {
case 0:
backName = "back1"
case 1:
backName = "back2"
selectButton.isHidden = true
default:
backName = "back1"
}
UserDefaults.standard.set(backName, forKey: "backSaved")
background.texture = SKTexture(imageNamed: "\(backName!)")
}
func previousAction() {
backNumber -= 1
backRemainder = backNumber % 2
switch backRemainder {
case 0:
backName = "back1"
case 1:
backName = "back2"
selectButton.isHidden = true
default:
backName = "back1"
}
UserDefaults.standard.set(backName, forKey: "backSaved")
background.texture = SKTexture(imageNamed: "\(backName!)")
}
あなたが見ることができるように、私はisHiddenプロパティを使用しようとしているが、私はエラーになっている:「未解決識別子 『selectButton』の使用を」。私はdidMove(toView)の前にボタンを初期化しようとしましたが、selectAction()はdidMove(toView)ブロックの後になければならないので、ちょうどそれを駄目です。私が書いたものが、あまりにも混乱したり間違ったりしないことを望みます。私はSpriteKitを使ってコードを書くことを学んでいます。
SKSceneのボタンの表示/非表示を切り替えるにはどうすればよいですか?