From 08e1b830272f255d7945a5ca0c758b92cbb9dec1 Mon Sep 17 00:00:00 2001 From: "johan.lachenal" Date: Mon, 27 May 2024 08:51:16 +0200 Subject: [PATCH] Add(GameParametersMenuView): add photo component to test on IOS phones, the app now launches on the MainMenu and other things were done --- .DS_Store | Bin 6148 -> 6148 bytes ArkitDoushiQi/.DS_Store | Bin 6148 -> 6148 bytes .../ArkitDoushiQi.xcodeproj/project.pbxproj | 30 +++++++ .../ArkitDoushiQi/ArkitDoushiQiApp.swift | 2 +- .../Controls/PhotoButtonComponent.swift | 73 ++++++++++++++++ .../Components/Visuals/ProfileComponent.swift | 20 +++++ .../ArkitDoushiQi/Views/Game/GameView.swift | 20 +++++ .../GameParametersMenuView.swift | 78 ++++++++++++------ .../GeneralParametersMenuView.swift | 20 ----- .../Views/MainMenu/MainMenu.swift | 2 +- ArkitDoushiQi/Model/.DS_Store | Bin 0 -> 6148 bytes ArkitDoushiQi/Model/XCFramework/.DS_Store | Bin 0 -> 6148 bytes .../XCFramework/DSQ.xcframework/.DS_Store | Bin 0 -> 6148 bytes 13 files changed, 197 insertions(+), 48 deletions(-) create mode 100644 ArkitDoushiQi/ArkitDoushiQi/Views/Components/Controls/PhotoButtonComponent.swift create mode 100644 ArkitDoushiQi/ArkitDoushiQi/Views/Components/Visuals/ProfileComponent.swift create mode 100644 ArkitDoushiQi/ArkitDoushiQi/Views/Game/GameView.swift create mode 100644 ArkitDoushiQi/Model/.DS_Store create mode 100644 ArkitDoushiQi/Model/XCFramework/.DS_Store create mode 100644 ArkitDoushiQi/Model/XCFramework/DSQ.xcframework/.DS_Store diff --git a/.DS_Store b/.DS_Store index 1467c31699eb2dfa80370c9e9c65c91d14f141cf..cccd18acbb30e571e79408b1ef058db81fa3f2ce 100644 GIT binary patch delta 21 ccmZoMXffFEgo(q{%tS}Q)Yx+K8zu=+08D)bVE_OC delta 21 ccmZoMXffFEgo#7f)KW*m*wAA08zu=+08AVPSO5S3 diff --git a/ArkitDoushiQi/.DS_Store b/ArkitDoushiQi/.DS_Store index f39ec858a3f9d875ef7dfe9561ed452dc4df2da0..6dbb068bdde6b067e11746a89bf855050107c4b5 100644 GIT binary patch delta 338 zcmZoMXfc=|#>B!ku~2NHo+2aH#(>?7i$5?kF>+1jVM=D)F}Z-LkXxd<+SJTMN5RzC za`G!CX~wR}Y|QeE-9Qy`0%gHPc{%xc=?n}Ej6f_tS%68(fI*L;f+3k9pCN@Im7##4 z2*}Fv%*jtq%E?axDiQ$V^+2rm9}E~6CI>M0JF+tPLUrVzs%89%tQN>dQkhg7)nsx!IVDv0`ttx>>T_Yz!2N~koi0F VWPTAx4xqo8faWu7ju2VH3;_6TRn-6h delta 107 zcmZoMXfc=|#>B)qu~2NHo+2ab#(>?7jI5J+SdtmHO)g+5 UIImagePickerController { + let imagePicker = UIImagePickerController() + imagePicker.sourceType = .camera + imagePicker.allowsEditing = true + imagePicker.delegate = context.coordinator + return imagePicker + } + + func updateUIViewController(_ uiViewController: UIImagePickerController, context: Context) { + + } + + func makeCoordinator() -> Coordinator { + return Coordinator(picker: self) + } +} + +struct PhotoButtonComponent: View { + let Text : String + @State private var showCamera = false + @State private var selectedImage: UIImage? + @State var image: UIImage? + var body: some View { + VStack { + if let selectedImage{ + Image(uiImage: selectedImage) + .resizable() + .scaledToFit() + } + + Button("Open camera") { + self.showCamera.toggle() + } + .fullScreenCover(isPresented: self.$showCamera) { + accessCameraView(selectedImage: self.$selectedImage) + } + } + } +} + +struct PhotoButtonComponent_Previews: PreviewProvider { + static var previews: some View { + PhotoButtonComponent(Text : "Prendre Photo") + } +} diff --git a/ArkitDoushiQi/ArkitDoushiQi/Views/Components/Visuals/ProfileComponent.swift b/ArkitDoushiQi/ArkitDoushiQi/Views/Components/Visuals/ProfileComponent.swift new file mode 100644 index 0000000..4f12d75 --- /dev/null +++ b/ArkitDoushiQi/ArkitDoushiQi/Views/Components/Visuals/ProfileComponent.swift @@ -0,0 +1,20 @@ +// +// ProfileComponent.swift +// ArkitDoushiQi +// +// Created by Johan LACHENAL on 27/05/2024. +// + +import SwiftUI + +struct ProfileComponent: View { + var body: some View { + Text(/*@START_MENU_TOKEN@*/"Hello, World!"/*@END_MENU_TOKEN@*/) + } +} + +struct ProfileComponent_Previews: PreviewProvider { + static var previews: some View { + ProfileComponent() + } +} diff --git a/ArkitDoushiQi/ArkitDoushiQi/Views/Game/GameView.swift b/ArkitDoushiQi/ArkitDoushiQi/Views/Game/GameView.swift new file mode 100644 index 0000000..dd07a44 --- /dev/null +++ b/ArkitDoushiQi/ArkitDoushiQi/Views/Game/GameView.swift @@ -0,0 +1,20 @@ +// +// GameView.swift +// ArkitDoushiQi +// +// Created by Johan LACHENAL on 27/05/2024. +// + +import SwiftUI + +struct GameView: View { + var body: some View { + Text(/*@START_MENU_TOKEN@*/"Hello, World!"/*@END_MENU_TOKEN@*/) + } +} + +struct GameView_Previews: PreviewProvider { + static var previews: some View { + GameView() + } +} diff --git a/ArkitDoushiQi/ArkitDoushiQi/Views/GameParametersMenu/GameParametersMenuView.swift b/ArkitDoushiQi/ArkitDoushiQi/Views/GameParametersMenu/GameParametersMenuView.swift index b7ba71c..4bd66a4 100644 --- a/ArkitDoushiQi/ArkitDoushiQi/Views/GameParametersMenu/GameParametersMenuView.swift +++ b/ArkitDoushiQi/ArkitDoushiQi/Views/GameParametersMenu/GameParametersMenuView.swift @@ -1,29 +1,55 @@ -//// -//// GameParametersMenuView.swift -//// ArkitDoushiQi -//// -//// Created by Johan LACHENAL on 24/05/2024. -//// // -//import SwiftUI +// GameParametersMenuView.swift +// ArkitDoushiQi // -//struct GameParametersMenuView: View { -//// enum Rules: String, CaseIterable, Identifiable, Hashable { -//// case Easy = "Simplifié" -//// case Regular = "Normal" -//// var id: String { self.rawValue } -//// } -// var body: some View { +// Created by Johan LACHENAL on 24/05/2024. // -//// PickerComponent(title: "Sélectionne les règles :", -//// selectedOption: $selectedRulesOption, -//// options: Rules.allCases) -// } -// -//} -// -//struct GameParametersMenuView_Previews: PreviewProvider { -// static var previews: some View { -// GameParametersMenuView() -// } -//} + +import SwiftUI +import PhotosUI + +enum AIT: String, CaseIterable, Identifiable, Hashable { + case RandomAction = "IA Random" + case EasyTrainedAI = "IA Facile" + case MediumTrainedAI = "IA Intermédiaire" + + var id: String { self.rawValue } +} + +enum Rules: String, CaseIterable, Identifiable, Hashable { + case Easy = "Simplifié" + case Regular = "Normal" + var id: String { self.rawValue } +} + +struct GameParametersMenuView: View { + @State private var selectedAIOption: AIT = .RandomAction + @State private var selectedRulesOption: Rules = .Regular + var body: some View { + NavigationView { + VStack(alignment: .leading) { + HStack(alignment: .center) { + Text("Paramètres de partie").bold().font(.title) + }.frame(maxWidth: .infinity) + PickerComponent(title: "Sélectionne les règles :", + selectedOption: $selectedRulesOption, + options: Rules.allCases) + PickerComponent(title: "Sélectionne une IA :", + selectedOption: $selectedAIOption, + options: AIT.allCases) + EditComponent(explanation: "Nom du joueur 1", value: "Joueur 1") + EditComponent(explanation: "Nom du joueur 2",value: "Joueur 2") + ButtonComponent(title: "Lancer la partie") { + GameView() + } + }.frame(maxHeight: .infinity, alignment: .top) + } + } + +} + +struct GameParametersMenuView_Previews: PreviewProvider { + static var previews: some View { + GameParametersMenuView() + } +} diff --git a/ArkitDoushiQi/ArkitDoushiQi/Views/GeneralParametersMenu/GeneralParametersMenuView.swift b/ArkitDoushiQi/ArkitDoushiQi/Views/GeneralParametersMenu/GeneralParametersMenuView.swift index a9eb598..6a6de1b 100644 --- a/ArkitDoushiQi/ArkitDoushiQi/Views/GeneralParametersMenu/GeneralParametersMenuView.swift +++ b/ArkitDoushiQi/ArkitDoushiQi/Views/GeneralParametersMenu/GeneralParametersMenuView.swift @@ -7,26 +7,12 @@ import SwiftUI -enum AIT: String, CaseIterable, Identifiable, Hashable { - case RandomAction = "IA Random" - case EasyTrainedAI = "IA Facile" - case MediumTrainedAI = "IA Intermédiaire" - - var id: String { self.rawValue } -} - enum Language: String, CaseIterable, Identifiable, Hashable { case French = "Français" case English = "English" var id: String { self.rawValue } } -enum Rules: String, CaseIterable, Identifiable, Hashable { - case Easy = "Simplifié" - case Regular = "Normal" - var id: String { self.rawValue } -} - struct GeneralParametersMenuView: View { @State private var selectedAIOption: AIT = .RandomAction @State private var selectedLanguageOption: Language = .French @@ -38,15 +24,9 @@ struct GeneralParametersMenuView: View { }.frame(maxWidth: .infinity) Spacer().frame(maxHeight: 30) ToggleComponent() - PickerComponent(title: "Sélectionne une IA :", - selectedOption: $selectedAIOption, - options: AIT.allCases) PickerComponent(title: "Sélectionne un langage :", selectedOption: $selectedLanguageOption, options: Language.allCases) - PickerComponent(title: "Sélectionne les règles :", - selectedOption: $selectedRulesOption, - options: Rules.allCases) }.frame(maxHeight: .infinity, alignment: .top) } diff --git a/ArkitDoushiQi/ArkitDoushiQi/Views/MainMenu/MainMenu.swift b/ArkitDoushiQi/ArkitDoushiQi/Views/MainMenu/MainMenu.swift index 39b4cf3..b1ce79c 100644 --- a/ArkitDoushiQi/ArkitDoushiQi/Views/MainMenu/MainMenu.swift +++ b/ArkitDoushiQi/ArkitDoushiQi/Views/MainMenu/MainMenu.swift @@ -26,7 +26,7 @@ struct MainMenu: View { Spacer().frame(height: 40) VStack(alignment: .leading) { ButtonComponent(title: playButtonText) - { Text("jeu page") } + { GameParametersMenuView() } Spacer().frame(height: 30) ButtonComponent(title: registeredGamesButtonText) { Text("parties enregistrées page") } diff --git a/ArkitDoushiQi/Model/.DS_Store b/ArkitDoushiQi/Model/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..5ec6b63225bd16c5065d47232f8e0a91ee23170f GIT binary patch literal 6148 zcmeHKOH0E*5T3176N=D-g2x4~Me7s9ORQD!;KhgvDm5`hgE3qBFo#meS$~XIe~Eub zXLh$@se&gJnSt4Fc6YvP@@?1$0Ek*IS_UWsfP+q0aIyHrsGoey3bv()DD*Q9U>6qQ z4x;^JESnqtq5?E`E*#>#Z9^SC%%8dn6BS}F{Tkcoi?7-+0w}>L?7$whA;8&gLIw)s z+x=vO_4GYfm~~oqtmm+m#GP)n`XUMw#mT8@XWA(_7ygaP{BF?gb!tKTjA} zH&?0^xwg777`V>d!qV1Z<2JcV)r0U zfED;H1?+m{lz!_4cwAP175K9X(E1?J2|bIsLA`Wfp|1dlbd1!7F&!9*BQ1IsbA#A} zCJYtPP=&o>2t&tqY4bdbxj{n*VJ{!Tjx6jAMd;D-`BJBY@CMYc0v$yQ0PS%@EY1^e?alFP2-_QUC~38xZ92G(#=jtHr+x9>{teL=tYW)$BO;?si-4Z0*h4YPR>H(^lJCyYqQNK6$qJ@=gCN8|M0pRe=P)d}|LqUcpxcw`g=8 zj`K|CC&)CbNIHdfCF-D|>X4E}4aHOBT(1DSY^(q)zzW<+0l#y}=AGC~Vg*=%`>cT3 z9~9hR;IVROw+=M+3IMEQ*cxK4A?v(?TZp`FW4u4S)*rOP^<|tl=Tf?|A0Wk1bIm8Hze*~-y+^_=wRDqxVN_&U^ literal 0 HcmV?d00001 diff --git a/ArkitDoushiQi/Model/XCFramework/DSQ.xcframework/.DS_Store b/ArkitDoushiQi/Model/XCFramework/DSQ.xcframework/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..a6188c40559ac3142cddc5437cd2642a801e70c1 GIT binary patch literal 6148 zcmeHKL2KJE6n<*c)oB^zutF&e1iPkfwx*$_7dPt;z0RXOY{RpcY%_DLU^~ko1bl9P zOt1YV`#anBBn6hHqcFx8s~$Xk&yv1p^kF?&L?pVS-czCm5qWUN+8UZ$jK|p*Y{~Yl z0EN!6Lqkd_p@PbV*{;JW;1u}R6yUwPMyHg~2U7IY{yk0A`#4oG#<@5g!*{-GLqt@^ zE?3y++Z0hw1L{!w2IJ}mV{4H?A$_F-a6{%JSAjVL8li?ns33~+`JCeMpU4@Hi=kcF zbv#UyqHMLkiKXS*%7ayJ)m!)82A|Y8D5G*zbff$=KfO{ajc0KbpC$cq*m(3@Wo49P z{ah20ULRB5oF`dNjk{`;^$N`m%z#(->S1GZGTHC6n{t2eaN3lU!)L9gZ0~iZ)4I3u zWcTQ0_&FV9>VhRkQAJhN_R!)CE)o2eo?n7IOI7v}{8{c-TNpZoN(c zr@);GaD9+)M&Dv(P?rug`U(K7p<5eb{#{^>wCG!`3}OT(3>9do!d@|ip`%~gdA`NU zprMnnmk(jzEbI+M=(i)k)YD1$23_kEa0<*TuxuV1eEz@q_5FXI!yvm@aps~lX4)`eEglof?