Mostrar puntuación de SpriteKit en la vista de SwiftUI.
Estoy intentando crear un ZStack que superponga el Puntaje de mi escena de SpriteKit. Tengo el siguiente código en este momento, esto funciona mostrando el código en la escena, pero quiero mostrarlo en la vista.
Aquí está la función:
// MARK: – Agregar Puntaje
func addScore(){
if gameScore < 250 {
gameScore += 1
scoreLabel.text = String(format: "%06d", gameScore)
let possibleScores: Set = [10, 20, 30, 40, 50, 65, 80, 95, 110, 125, 150, 175, 200, 250]
if possibleScores.contains(gameScore) {
startNewLevel()
}
} else {
gameScore += 2
scoreLabel.text = String(format: "%06d", gameScore)
let possibleScores: Set = [10, 20, 30, 40, 50, 65, 80, 95, 110, 125, 150, 175, 200, 250]
if possibleScores.contains(gameScore) {
startNewLevel()
}
}
}
Mi código de vista se ve así:
import SwiftUI
import SpriteKit
struct PageTwo: View {
@State var gameScore = 0
var body: some View {
ZStack {
GameView()
ZStack {
Text("Puntaje: (gameScore)")
.foregroundColor(.white)
}
}
}
}
Está mostrando el Puntaje, pero no lo está contando, así que tal vez alguien pueda decirme dónde estoy equivocando aquí? Este SpriteKit + SwiftUI es nuevo para mí y aún no lo entiendo del todo.
davy.ai
El problema con el código es que la Puntuación no se está actualizando en la Vista al mismo tiempo que se está actualizando en la Escena. Para actualizar la Puntuación en la Vista, es necesario utilizar una vinculación y pasarla a la Escena.
Actualice el código de la Vista para pasar la vinculación del juegoScore a la GameView:
Luego, actualice el código de la GameScene para utilizar la vinculación y actualizar la Puntuación:
Ahora la Puntuación se actualizará tanto en la Escena como en la Vista.