Post

Replies

Boosts

Views

Activity

View does not update
Hi, I'd like to change the name of Player1 ("Marek") when I click save button on a setting view screen. On the main view screen, the new name only appears on a test Text (small yellow font), yet the change is not visible on the purple square (big white font). It seems that player name from the playerView doesn't update. However adding points (which are also displayed from the playerView) work just fine. Here is the code: https://github.com/Voytsh/GameHelpPls I'd extremely thankful for your help
3
0
452
Jul ’21
I cannot manage to make var gracz1 and var gracz2 to update on a screen.
import SwiftUI struct Player: {     @State var name: String     @State var points: Int = 0     @State var setPoints: Int = 0     @State var allPoints: Int = 0     @State var didStart: Bool     mutating func plus() -> Void {         points += 1         allPoints += 1     }     mutating func minus() -> Void {         points -= 1         allPoints -= 1     }     func wonGame() -> Bool {         if setPoints == 5 {return true}         else {return false}     } class Game: ObservableObject {     @Published var gracz1: Player = Player(name: "Player 1", didStart: true)     @Published var gracz2: Player = Player(name: "Player2", didStart: false)     var toWinSet: Int = 11     var toWinGame: Int = 5     func whoServes() -> String {         let suma = gracz1.points + gracz2.points         if gracz1.didStart {             if suma % 4 == 2 || suma % 4 == 3 {return gracz2.name}             else {return gracz1.name}         } else {             if suma % 4 == 2 || suma % 4 == 3 {return gracz1.name}             else {return gracz2.name}         }     }     func whoWonSet() -> Void {         if gracz1.points == 11 {             gracz1.points = 0             gracz1.allPoints += 1             gracz1.didStart = false           gracz2.didStart = true         }         if gracz2.points == 11 {             gracz2.points = 0             gracz2.allPoints += 1             gracz2.didStart = false             gracz1.didStart = true         }     }     func didSomeoneWin() -> String? {         if gracz1.setPoints == toWinGame {return gracz1.name}         if gracz2.setPoints == toWinGame {return gracz2.name}         else {return nil}     } struct ContentView: View {     let serves = "s.circle"     let notServes = ""     @ObservedObject var game = Game()     @State var showingSettings: Bool = false     let hh = UIScreen.main.bounds.height     var body: some View {     // MARK: - PLAYER SECTION                 ZStack{                     VStack{                         Text(String(game.gracz2.points))                             .font(.system(size: hh/3))                             .frame(width: hh/2.5, height: hh/3)                         Text(String(game.gracz2.setPoints))                             .font(.system(size: hh/15))                     }                     HStack{                         Button(action: {                             game.gracz2.minus()                         }, label: {                             Text("-")                                 .foregroundColor(.primary)                                 .padding()                                 .frame(maxWidth: .infinity, maxHeight: .infinity, alignment: .bottomLeading)                         })                         Button(action: {                             game.gracz2.plus();                             game.whoWonSet()                         }, label: {                             Text("+")                                 .foregroundColor(.primary)                                 .padding()                                 .frame(maxWidth: .infinity, maxHeight: .infinity, alignment: .bottomTrailing)                         })                     }                 }                 .background(Color("C2"))                 .cornerRadius(26)                 .padding()                 .frame(maxWidth: .infinity, maxHeight: .infinity)     } } struct ContentView_Previews: PreviewProvider {     static var previews: some View {         ContentView()     } }
1
0
383
Jul ’21