Merge branch 'dev_views_Game'

Conflicts:
	DouShouQi_App/DouShouQi_App/Views/Player/SelectPlayerView.swift
dev_save_game
Rayhân HASSOU 10 months ago
commit 60711f4897

@ -35,12 +35,14 @@ struct CustomShapeRightButton: Shape {
struct SelectPlayerButtonView: View {
@State var player1:String = "IA"
@State var player2:String = "IA"
@ObservedObject var player1:PlayerVM
@ObservedObject var player2:PlayerVM
@ObservedObject var playersVM: PlayersVM
@State private var showingPopup = false
@State private var showingPopup1 = false
@State private var showingPopup2 = false
var body: some View {
ZStack{
@ -51,20 +53,12 @@ struct SelectPlayerButtonView: View {
.offset(y: -60)
HStack{
VStack (alignment: .leading) {
Text(player1)
Text(player1.player.name)
.font(.title)
.padding(3)
Button(action: {
print("Button j1 pressé!")
if (player1 == "IA"){
if (player2 == "Player1"){
player1="Player2"
}else{
player1="Player1"
}
}else{
player1="IA"
}
showingPopup1 = true
}) {
VStack {
Text("+")
@ -73,6 +67,9 @@ struct SelectPlayerButtonView: View {
Text("Add a player")
.font(.body)
.bold()
.sheet(isPresented: $showingPopup1) {
ShowAllPlayer(currentShowingSheet: $showingPopup1, currentPlayer: player1, otherPlayer: player2, playersVM: playersVM)
}
}
.frame(width: 150, height: 150)
.padding()
@ -83,13 +80,13 @@ struct SelectPlayerButtonView: View {
}
}
VStack (alignment: .trailing) {
Text(player2)
Text(player2.player.name)
.font(.title)
.padding(3)
Button(action: {
print("Button j2 pressé!")
showingPopup = true
showingPopup2 = true
}) {
VStack {
Text("+")
@ -98,10 +95,10 @@ struct SelectPlayerButtonView: View {
Text("Add a player")
.font(.body)
.bold()
.sheet(isPresented: $showingPopup) {
ShowAllPlayer(playersVM: playersVM)
.sheet(isPresented: $showingPopup2) {
ShowAllPlayer(currentShowingSheet: $showingPopup2, currentPlayer: player2, otherPlayer: player1, playersVM: playersVM)
}
} .frame(width: 150, height: 150)
}.frame(width: 150, height: 150)
.padding()
.border(Colors.TitleText, width: 4)
.foregroundColor(Colors.TitleText)
@ -114,9 +111,13 @@ struct SelectPlayerButtonView: View {
}
}
struct SelectPlayerButtonView_Previews: PreviewProvider {
/*struct SelectPlayerButtonView_Previews: PreviewProvider {
var player1 = PlayerVM(player: Player(name: "Linked", photo: ""))
var player22 = PlayerVM(player: Player(name: "Horizon", photo: ""))
static var previews: some View {
@StateObject var playersVM = PlayersVM()
SelectPlayerButtonView(playersVM: PlayersVM())
SelectPlayerButtonView(player1: player1, player2: player2, playersVM: PlayersVM())
}
}
}*/

@ -9,25 +9,43 @@ import SwiftUI
struct ShowAllPlayer: View {
@State private var isShowingSheet = false
@Binding var currentShowingSheet: Bool
@ObservedObject var currentPlayer:PlayerVM
@ObservedObject var otherPlayer:PlayerVM
@ObservedObject var playersVM: PlayersVM
var body: some View {
VStack(alignment: .leading) {
Text("Liste des joueurs actuelle :")
Text("Choose a player :")
List {
ForEach($playersVM.players, id: \.self) { playerVM in
Button(action: {
}) {
HStack {
Image(systemName: "person.fill")
.resizable()
.frame(width: 30, height: 30)
Text(playerVM.player.name.wrappedValue)
}
if otherPlayer.player.name != playerVM.player.wrappedValue.name {
Button(action: {
if currentPlayer.player.name == playerVM.player.wrappedValue.name {
currentPlayer.player = Player(name: "IA", photo: "")
} else {
currentPlayer.player = playerVM.player.wrappedValue
}
self.currentShowingSheet = false
}) {
HStack {
Image(systemName: "person.fill")
.resizable()
.frame(width: 30, height: 30)
Text(playerVM.player.name.wrappedValue)
}
.padding()
.background(Color.blue)
.foregroundColor(.white)
.cornerRadius(10)
.shadow(radius: 3)
}
}
}
}
Button(action: {
self.isShowingSheet = true
}) {

@ -35,5 +35,10 @@ public class PlayerVM: ObservableObject, Identifiable, Hashable{
init(player: Player) {
self.player = player
}
convenience init() {
self.init(player: Player(name: "IA", photo: ""))
}
}

@ -9,13 +9,17 @@ import SwiftUI
import SpriteKit
struct SelectPlayerView: View {
@StateObject var player1 = PlayerVM()
@StateObject var player2 = PlayerVM()
var body: some View {
VStack {
TitlePageFrame(Text: "select players")
Spacer()
SelectPlayerButtonView()
SelectPlayerButtonView(player1: player1, player2: player2, playersVM: PlayersVM())
Spacer()
@ -44,8 +48,8 @@ struct SelectPlayerView: View {
}
}
struct SelectPlayerViewPreviews: PreviewProvider {
/*struct SelectPlayerViewPreviews: PreviewProvider {
static var previews: some View {
SelectPlayerView()
}
}
}*/

Loading…
Cancel
Save