From 5d9333d765e5b13df89a8eaf4d802e2e261a1b2e Mon Sep 17 00:00:00 2001 From: "louis.dufour" Date: Wed, 12 Jun 2024 09:58:26 +0200 Subject: [PATCH] Tout fonctionne juste c'est moche --- .DS_Store | Bin 8196 -> 8196 bytes .../ArkitDoushiQi.xcodeproj/project.pbxproj | 84 ++++----- ArkitDoushiQi/ArkitDoushiQi/Info.plist | 19 ++ ArkitDoushiQi/ArkitDoushiQi/MainMenu.swift | 175 ++++++++++++++---- .../ArkitDoushiQi/Utils/FlagManager.swift | 17 ++ .../ArkitDoushiQi/Utils/FontManager.swift | 24 +++ ArkitDoushiQi/Ressources/Font/nuku1.ttf | Bin 0 -> 16608 bytes .../en.lproj/Localizable.strings | 0 .../fr.lproj/Localizable.strings | 0 9 files changed, 238 insertions(+), 81 deletions(-) create mode 100644 ArkitDoushiQi/ArkitDoushiQi/Info.plist create mode 100644 ArkitDoushiQi/ArkitDoushiQi/Utils/FlagManager.swift create mode 100644 ArkitDoushiQi/ArkitDoushiQi/Utils/FontManager.swift create mode 100644 ArkitDoushiQi/Ressources/Font/nuku1.ttf rename ArkitDoushiQi/{ => Ressources}/en.lproj/Localizable.strings (100%) rename ArkitDoushiQi/{ => Ressources}/fr.lproj/Localizable.strings (100%) diff --git a/.DS_Store b/.DS_Store index 7f9761549e7b7d460fb6c03583e79b140250d30f..6492ea0e8f3894c4afdf4342921158f71a78be2e 100644 GIT binary patch delta 152 zcmZp1XmOa}FDk^qz`)4BAi%(o!jQ_42Hwr=94s9AAQkKk#tbeD zz6|-us`8V7GC+-tKY_H~e=uNRn9L(!#q7fKVX~)y9P29Wo7=Ze&Jj?AvL*>AF}WyA i{vaSf`KrKfb`ujF1w#YlNy7G2Hwr=94s7+f|IQTteAny zCYKAyv6cySEZQ>pfPm=a^#VL_o)TD|QAlnwv*2zvLo*!(WAn+n!Va5Rgld>J2k~rW K-pnrXmmL7Us2 + + + + UTImportedTypeDeclarations + + + UTTypeIconFiles + + UTTypeTagSpecification + + + + UIAppFonts + + nuku1.ttf + + + diff --git a/ArkitDoushiQi/ArkitDoushiQi/MainMenu.swift b/ArkitDoushiQi/ArkitDoushiQi/MainMenu.swift index 15bddc3..2bbb518 100644 --- a/ArkitDoushiQi/ArkitDoushiQi/MainMenu.swift +++ b/ArkitDoushiQi/ArkitDoushiQi/MainMenu.swift @@ -4,9 +4,36 @@ // // Created by Johan LACHENAL on 16/05/2024. // - import SwiftUI +struct AnimatedCherryBlossomView: View { + @State private var moveTrees = false + @Environment(\.colorScheme) var colorScheme + + var body: some View { + ZStack { + // Arbre gauche + Image(colorScheme == .dark ? "cherry_tree_dark" : "cherry_tree_light") + .resizable() + .scaledToFit() + .frame(width: 200, height: 400) + .offset(x: moveTrees ? -20 : -40, y: moveTrees ? 10 : 30) + .animation(Animation.easeInOut(duration: 3).repeatForever(autoreverses: true)) + + // Arbre droit + Image(colorScheme == .dark ? "cherry_tree_dark" : "cherry_tree_light") + .resizable() + .scaledToFit() + .frame(width: 200, height: 400) + .offset(x: moveTrees ? 20 : 40, y: moveTrees ? 10 : 30) + .animation(Animation.easeInOut(duration: 3).repeatForever(autoreverses: true)) + } + .onAppear { + moveTrees.toggle() + } + } +} + struct MainMenu: View { @EnvironmentObject var languageSettings: LanguageSettings let playButtonText: String @@ -14,78 +41,94 @@ struct MainMenu: View { @State private var action: Int? = 0 @AppStorage("isDarkMode") private var isDarkMode = false @State private var reloadView = false + @State private var showLanguagePicker = false + @ScaledMetric(relativeTo: .body) var scaledPadding: CGFloat = 10 + @Environment(\.colorScheme) var colorScheme var body: some View { NavigationView { ZStack { - // Ajouter l'image en arrière-plan - Image("BackGroundMenu") - .resizable() - .aspectRatio(contentMode: .fill) + // Utiliser la vue animée en arrière-plan + AnimatedCherryBlossomView() .edgesIgnoringSafeArea(.all) - .frame(width: UIScreen.main.bounds.width, height: UIScreen.main.bounds.height) - VStack { - // Ajouter un HStack pour le titre et l'icône des paramètres - HStack { - - Button(action: { - isDarkMode.toggle() - }) { - Image(systemName: isDarkMode ? "sun.max.fill" : "moon.fill") - .foregroundColor(.white) - .padding() - } - - Button(action: { - // Action pour changer la langue - NotificationCenter.default.post(name: NSNotification.Name("LanguageChanged"), object: nil) - }) { - Image(systemName: "globe") - .foregroundColor(.white) - .padding() - } - - } + // Ajouter le titre du jeu + Text("DOUSHIQI") + .font(.custom("Nuku Nuku", size: 48, relativeTo: .largeTitle)) // Utilisez le nom PostScript correct + .padding() + .foregroundColor(colorScheme == .dark ? .white : .black) + .offset(x: 0, y: 15) + + Text("GAME") + .font(.custom("Nuku Nuku", size: 48, relativeTo: .largeTitle)) // Utilisez le nom PostScript correct + .foregroundColor(colorScheme == .dark ? .white : .black) Spacer() // Bouton "Jouer" au centre et plus grand, sans bandeau bleu - NavigationLink(destination: GameParametersMenuView()) - { + NavigationLink(destination: GameParametersMenuView()) { Text(playButtonText) - .font(.largeTitle) + .font(.custom("Nuku Nuku", size: 32, relativeTo: .title)) .bold() .frame(maxWidth: .infinity) .padding() .background(Color.white.opacity(0.2)) - .foregroundColor(.white) + .foregroundColor(colorScheme == .dark ? .white : .black) .cornerRadius(10) .overlay( RoundedRectangle(cornerRadius: 10) - .stroke(Color.white, lineWidth: 2) + .stroke(colorScheme == .dark ? Color.white : Color.black, lineWidth: 2) ) .shadow(radius: 10) + .padding(scaledPadding) } .padding(.horizontal, 50) - Spacer().frame(height: 40) // Bouton "Parties enregistrées" plus discret - NavigationLink(destination: PartyListView()) - { + NavigationLink(destination: PartyListView()) { Text(registeredGamesButtonText) - .font(.headline) + .font(.custom("Nuku Nuku", size: 18, relativeTo: .body)) .padding() .background(Color.gray.opacity(0.7)) - .foregroundColor(.white) + .foregroundColor(colorScheme == .dark ? .white : .black) .cornerRadius(10) .shadow(radius: 5) + .padding(scaledPadding) } .padding(.horizontal, 50) + Spacer().frame(height: 20) + + // Ajouter les icônes pour les paramètres en bas du bouton "Registered Games" + HStack { + Button(action: { + isDarkMode.toggle() + }) { + Image(systemName: isDarkMode ? "sun.max.fill" : "moon.fill") + .foregroundColor(colorScheme == .dark ? .white : .black) + .padding() + .scaleEffect(1.2) + } + + Button(action: { + // Afficher le sélecteur de langue + showLanguagePicker.toggle() + }) { + Image(systemName: "globe") + .foregroundColor(colorScheme == .dark ? .white : .black) + .padding() + .scaleEffect(1.2) + } + .sheet(isPresented: $showLanguagePicker) { + LanguagePickerView(showLanguagePicker: $showLanguagePicker) + .environmentObject(languageSettings) + } + } + .padding(scaledPadding) + Spacer() } .padding(EdgeInsets(top: 10, leading: 32, bottom: 10, trailing: 32)) @@ -98,6 +141,62 @@ struct MainMenu: View { } } +struct LanguagePickerView: View { + @Binding var showLanguagePicker: Bool + @EnvironmentObject var languageSettings: LanguageSettings + @Environment(\.colorScheme) var colorScheme + + var body: some View { + VStack(spacing: 30) { + Text("Choose Language") + .font(.headline) + .padding() + .foregroundColor(colorScheme == .dark ? .white : .black) + + HStack(spacing: 50) { + Button(action: { + languageSettings.selectedLanguage = .French + showLanguagePicker = false + }) { + VStack { + Text(flag(country: "FR")) + .font(.system(size: 50)) + Text("French") + .font(.title2) + .foregroundColor(colorScheme == .dark ? .white : .black) + } + } + + Button(action: { + languageSettings.selectedLanguage = .English + showLanguagePicker = false + }) { + VStack { + Text(flag(country: "GB")) + .font(.system(size: 50)) + Text("English") + .font(.title2) + .foregroundColor(colorScheme == .dark ? .white : .black) + } + } + } + + Button(action: { + showLanguagePicker = false + }) { + Text("Cancel") + .font(.title2) + .padding() + .background(Color.red.opacity(0.7)) + .foregroundColor(.white) + .cornerRadius(10) + } + .padding(.top, 20) + } + .padding() + } +} + struct MainMenu_Previews: PreviewProvider { static var previews: some View { MainMenu(playButtonText: "Play", registeredGamesButtonText: "Registered Games") diff --git a/ArkitDoushiQi/ArkitDoushiQi/Utils/FlagManager.swift b/ArkitDoushiQi/ArkitDoushiQi/Utils/FlagManager.swift new file mode 100644 index 0000000..5401a9b --- /dev/null +++ b/ArkitDoushiQi/ArkitDoushiQi/Utils/FlagManager.swift @@ -0,0 +1,17 @@ +// +// FlagManager.swift +// ArkitDoushiQi +// +// Created by Louis DUFOUR on 12/06/2024. +// + +import SwiftUI + +func flag(country: String) -> String { + let base = 127397 + var usv = String.UnicodeScalarView() + for i in country.utf16 { + usv.append(UnicodeScalar(base + Int(i))!) + } + return String(usv) +} diff --git a/ArkitDoushiQi/ArkitDoushiQi/Utils/FontManager.swift b/ArkitDoushiQi/ArkitDoushiQi/Utils/FontManager.swift new file mode 100644 index 0000000..27df529 --- /dev/null +++ b/ArkitDoushiQi/ArkitDoushiQi/Utils/FontManager.swift @@ -0,0 +1,24 @@ +// +// FontManager.swift +// ArkitDoushiQi +// +// Created by Louis DUFOUR on 12/06/2024. +// + +import Foundation +import UIKit + +class AppDelegate: UIResponder, UIApplicationDelegate { + var window: UIWindow? + + func application(_ application: UIApplication, + didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { + + for family in UIFont.familyNames.sorted() { + let names = UIFont.fontNames(forFamilyName: family) + print("Family: \(family) Font names: \(names)") + } + + return true + } +} diff --git a/ArkitDoushiQi/Ressources/Font/nuku1.ttf b/ArkitDoushiQi/Ressources/Font/nuku1.ttf new file mode 100644 index 0000000000000000000000000000000000000000..b2cc8f4db4f43f72ad66cf807b43621313d93e9f GIT binary patch literal 16608 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 m#ikx5#TJhei$}Z6)~Z?&|qH~t5C|Ee|s literal 0 HcmV?d00001 diff --git a/ArkitDoushiQi/en.lproj/Localizable.strings b/ArkitDoushiQi/Ressources/en.lproj/Localizable.strings similarity index 100% rename from ArkitDoushiQi/en.lproj/Localizable.strings rename to ArkitDoushiQi/Ressources/en.lproj/Localizable.strings diff --git a/ArkitDoushiQi/fr.lproj/Localizable.strings b/ArkitDoushiQi/Ressources/fr.lproj/Localizable.strings similarity index 100% rename from ArkitDoushiQi/fr.lproj/Localizable.strings rename to ArkitDoushiQi/Ressources/fr.lproj/Localizable.strings