diff --git a/Assets/title-background.svg b/Assets/title-background.svg index a587d3e..beeac20 100644 --- a/Assets/title-background.svg +++ b/Assets/title-background.svg @@ -1,7 +1,9 @@ - - - - - - - + + title-background-svg + + + + + \ No newline at end of file diff --git a/DouShouQi_App/DouShouQi_App.xcodeproj/project.pbxproj b/DouShouQi_App/DouShouQi_App.xcodeproj/project.pbxproj index b79b193..d92e6d4 100644 --- a/DouShouQi_App/DouShouQi_App.xcodeproj/project.pbxproj +++ b/DouShouQi_App/DouShouQi_App.xcodeproj/project.pbxproj @@ -31,7 +31,6 @@ 649B59AE2BF64EAB002BAE38 /* AppImages.swift in Sources */ = {isa = PBXBuildFile; fileRef = 649B59AD2BF64EAB002BAE38 /* AppImages.swift */; }; 649B59B22BF65392002BAE38 /* TextStyles.swift in Sources */ = {isa = PBXBuildFile; fileRef = 649B59B12BF65392002BAE38 /* TextStyles.swift */; }; 649B59B42BF653E1002BAE38 /* ViewTitleTextStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 649B59B32BF653E1002BAE38 /* ViewTitleTextStyle.swift */; }; - 64D0772E2C29A5DC006355A4 /* DSQ.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = EC62C5322C1C188F0048CD0B /* DSQ.xcframework */; }; 64D2D74E2C25D380009BD010 /* Animals.Symbols.swift in Sources */ = {isa = PBXBuildFile; fileRef = 64D2D74D2C25D380009BD010 /* Animals.Symbols.swift */; }; 64D992722C06281B002ACBC6 /* SystemIcons.swift in Sources */ = {isa = PBXBuildFile; fileRef = 64D992712C06281B002ACBC6 /* SystemIcons.swift */; }; 64FC4D692C09C78000D08B8B /* SelectPlayerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 64FC4D682C09C78000D08B8B /* SelectPlayerView.swift */; }; @@ -47,9 +46,6 @@ EC2DD0412C1C203000FC55C0 /* ShowAllPlayer.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC2DD0402C1C203000FC55C0 /* ShowAllPlayer.swift */; }; EC3EE4B12C0CD46000710153 /* ButtonView.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC3EE4B02C0CD46000710153 /* ButtonView.swift */; }; EC3EE4B32C0CD47000710153 /* MainButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC3EE4B22C0CD47000710153 /* MainButton.swift */; }; - EC4D7EFB2C29C1470076CD8A /* Fight.mp3 in Resources */ = {isa = PBXBuildFile; fileRef = EC4D7EF92C29C1470076CD8A /* Fight.mp3 */; }; - EC4D7EFD2C29C14F0076CD8A /* SelectFighterSound.mp3 in Resources */ = {isa = PBXBuildFile; fileRef = EC4D7EFC2C29C14F0076CD8A /* SelectFighterSound.mp3 */; }; - EC4D7EFF2C29C1550076CD8A /* Start.mp3 in Resources */ = {isa = PBXBuildFile; fileRef = EC4D7EFE2C29C1550076CD8A /* Start.mp3 */; }; EC62C4FB2C038BD20048CD0B /* PlayersView.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC62C4FA2C038BD20048CD0B /* PlayersView.swift */; }; EC62C4FD2C0391D30048CD0B /* PlayerRow.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC62C4FC2C0391D30048CD0B /* PlayerRow.swift */; }; EC62C4FF2C0457AD0048CD0B /* TitleScreenMusic.mp3 in Resources */ = {isa = PBXBuildFile; fileRef = EC62C4FE2C0457AD0048CD0B /* TitleScreenMusic.mp3 */; }; @@ -70,11 +66,22 @@ ECB636512C046379007CD5E2 /* MusicPlayer.swift in Sources */ = {isa = PBXBuildFile; fileRef = ECB636502C046379007CD5E2 /* MusicPlayer.swift */; }; ECB636532C0463A9007CD5E2 /* SoundPlayer.swift in Sources */ = {isa = PBXBuildFile; fileRef = ECB636522C0463A9007CD5E2 /* SoundPlayer.swift */; }; ECB636552C047992007CD5E2 /* Image.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = ECB636542C047992007CD5E2 /* Image.xcassets */; }; + ECCBA6B82C29BE1900D6D9FB /* ARKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ECCBA6B72C29BE1900D6D9FB /* ARKit.framework */; }; + ECCBA6BA2C29BE2800D6D9FB /* RealityKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ECCBA6B92C29BE2800D6D9FB /* RealityKit.framework */; }; + ECCBA6BD2C29BFF600D6D9FB /* ARBoard.swift in Sources */ = {isa = PBXBuildFile; fileRef = ECCBA6BC2C29BFF600D6D9FB /* ARBoard.swift */; }; + ECCBA6C12C29C0A300D6D9FB /* ARObjects in Resources */ = {isa = PBXBuildFile; fileRef = ECCBA6C02C29C0A300D6D9FB /* ARObjects */; }; + ECCBA6C32C29C25000D6D9FB /* ARKitUIViewBoard.swift in Sources */ = {isa = PBXBuildFile; fileRef = ECCBA6C22C29C25000D6D9FB /* ARKitUIViewBoard.swift */; }; + ECCBA6C52C29C2F500D6D9FB /* ARKitViewRepresentable.swift in Sources */ = {isa = PBXBuildFile; fileRef = ECCBA6C42C29C2F500D6D9FB /* ARKitViewRepresentable.swift */; }; ECE777142C2068F400D354B0 /* EditPlayerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = ECE777132C2068F400D354B0 /* EditPlayerView.swift */; }; ECF3FD312C2722C600F5E62B /* CDHistoriqueExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = ECF3FD302C2722C600F5E62B /* CDHistoriqueExtension.swift */; }; ECF3FD332C27238F00F5E62B /* Historique.swift in Sources */ = {isa = PBXBuildFile; fileRef = ECF3FD322C27238F00F5E62B /* Historique.swift */; }; ECF3FD3A2C29A20D00F5E62B /* HistoricListVM.swift in Sources */ = {isa = PBXBuildFile; fileRef = ECF3FD392C29A20D00F5E62B /* HistoricListVM.swift */; }; ECF3FD3D2C29B64100F5E62B /* ChronoVM.swift in Sources */ = {isa = PBXBuildFile; fileRef = ECF3FD3C2C29B64100F5E62B /* ChronoVM.swift */; }; + ECF9AD2C2C29CF5C00238A06 /* DSQ.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = ECCBA6B32C29BCCD00D6D9FB /* DSQ.xcframework */; }; + ECF9AD2D2C29CF5C00238A06 /* DSQ.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = ECCBA6B32C29BCCD00D6D9FB /* DSQ.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + ECF9AD352C29D46A00238A06 /* Start.mp3 in Resources */ = {isa = PBXBuildFile; fileRef = ECF9AD322C29D46A00238A06 /* Start.mp3 */; }; + ECF9AD362C29D46A00238A06 /* Fight.mp3 in Resources */ = {isa = PBXBuildFile; fileRef = ECF9AD332C29D46A00238A06 /* Fight.mp3 */; }; + ECF9AD372C29D46A00238A06 /* SelectFighterSound.mp3 in Resources */ = {isa = PBXBuildFile; fileRef = ECF9AD342C29D46A00238A06 /* SelectFighterSound.mp3 */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -101,6 +108,20 @@ }; /* End PBXContainerItemProxy section */ +/* Begin PBXCopyFilesBuildPhase section */ + ECF9AD2E2C29CF5C00238A06 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + ECF9AD2D2C29CF5C00238A06 /* DSQ.xcframework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + /* Begin PBXFileReference section */ 6437FF122C25846F009D0EAF /* PlayingGameVM.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlayingGameVM.swift; sourceTree = ""; }; 645834582BF5F92300E18321 /* DouShouQi_App.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = DouShouQi_App.app; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -145,9 +166,6 @@ EC2DD0402C1C203000FC55C0 /* ShowAllPlayer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShowAllPlayer.swift; sourceTree = ""; }; EC3EE4B02C0CD46000710153 /* ButtonView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ButtonView.swift; sourceTree = ""; }; EC3EE4B22C0CD47000710153 /* MainButton.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MainButton.swift; sourceTree = ""; }; - EC4D7EF92C29C1470076CD8A /* Fight.mp3 */ = {isa = PBXFileReference; lastKnownFileType = audio.mp3; name = Fight.mp3; path = ../../../../../../Downloads/Fight.mp3; sourceTree = ""; }; - EC4D7EFC2C29C14F0076CD8A /* SelectFighterSound.mp3 */ = {isa = PBXFileReference; lastKnownFileType = audio.mp3; name = SelectFighterSound.mp3; path = ../../../../../../Downloads/SelectFighterSound.mp3; sourceTree = ""; }; - EC4D7EFE2C29C1550076CD8A /* Start.mp3 */ = {isa = PBXFileReference; lastKnownFileType = audio.mp3; name = Start.mp3; path = ../../../../../../Downloads/Start.mp3; sourceTree = ""; }; EC62C4FA2C038BD20048CD0B /* PlayersView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlayersView.swift; sourceTree = ""; }; EC62C4FC2C0391D30048CD0B /* PlayerRow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlayerRow.swift; sourceTree = ""; }; EC62C4FE2C0457AD0048CD0B /* TitleScreenMusic.mp3 */ = {isa = PBXFileReference; lastKnownFileType = audio.mp3; path = TitleScreenMusic.mp3; sourceTree = ""; }; @@ -160,7 +178,6 @@ EC62C5242C0F68830048CD0B /* PlayerVM.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlayerVM.swift; sourceTree = ""; }; EC62C5282C1974000048CD0B /* PlayersVM.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlayersVM.swift; sourceTree = ""; }; EC62C52C2C197ED10048CD0B /* Player.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Player.swift; sourceTree = ""; }; - EC62C5322C1C188F0048CD0B /* DSQ.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = DSQ.xcframework; path = ../../SwiftUI_ARKit_2024/XCFramework/DSQ.xcframework; sourceTree = ""; }; EC62C5372C1C64EE0048CD0B /* CoreManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CoreManager.swift; sourceTree = ""; }; EC62C53C2C1C69200048CD0B /* DouShouQi_App.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = DouShouQi_App.xcdatamodel; sourceTree = ""; }; EC62C53E2C1C6D1A0048CD0B /* CDPlayerExtension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CDPlayerExtension.swift; sourceTree = ""; }; @@ -169,12 +186,22 @@ ECB636502C046379007CD5E2 /* MusicPlayer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MusicPlayer.swift; sourceTree = ""; }; ECB636522C0463A9007CD5E2 /* SoundPlayer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SoundPlayer.swift; sourceTree = ""; }; ECB636542C047992007CD5E2 /* Image.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Image.xcassets; sourceTree = ""; }; + ECCBA6B32C29BCCD00D6D9FB /* DSQ.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = DSQ.xcframework; path = "../../../Downloads/swiftui_arkit_2024 2/XCFramework/DSQ.xcframework"; sourceTree = ""; }; + ECCBA6B72C29BE1900D6D9FB /* ARKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ARKit.framework; path = System/Library/Frameworks/ARKit.framework; sourceTree = SDKROOT; }; + ECCBA6B92C29BE2800D6D9FB /* RealityKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = RealityKit.framework; path = System/Library/Frameworks/RealityKit.framework; sourceTree = SDKROOT; }; + ECCBA6BC2C29BFF600D6D9FB /* ARBoard.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ARBoard.swift; sourceTree = ""; }; + ECCBA6C02C29C0A300D6D9FB /* ARObjects */ = {isa = PBXFileReference; lastKnownFileType = folder; path = ARObjects; sourceTree = ""; }; + ECCBA6C22C29C25000D6D9FB /* ARKitUIViewBoard.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ARKitUIViewBoard.swift; sourceTree = ""; }; + ECCBA6C42C29C2F500D6D9FB /* ARKitViewRepresentable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ARKitViewRepresentable.swift; sourceTree = ""; }; ECE777132C2068F400D354B0 /* EditPlayerView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EditPlayerView.swift; sourceTree = ""; }; ECF3FD1D2C2582B300F5E62B /* ArKit.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = ArKit.xcodeproj; path = ../../Swift/ArKit/ArKit.xcodeproj; sourceTree = ""; }; ECF3FD302C2722C600F5E62B /* CDHistoriqueExtension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CDHistoriqueExtension.swift; sourceTree = ""; }; ECF3FD322C27238F00F5E62B /* Historique.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Historique.swift; sourceTree = ""; }; ECF3FD392C29A20D00F5E62B /* HistoricListVM.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HistoricListVM.swift; sourceTree = ""; }; ECF3FD3C2C29B64100F5E62B /* ChronoVM.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChronoVM.swift; sourceTree = ""; }; + ECF9AD322C29D46A00238A06 /* Start.mp3 */ = {isa = PBXFileReference; lastKnownFileType = audio.mp3; path = Start.mp3; sourceTree = ""; }; + ECF9AD332C29D46A00238A06 /* Fight.mp3 */ = {isa = PBXFileReference; lastKnownFileType = audio.mp3; path = Fight.mp3; sourceTree = ""; }; + ECF9AD342C29D46A00238A06 /* SelectFighterSound.mp3 */ = {isa = PBXFileReference; lastKnownFileType = audio.mp3; path = SelectFighterSound.mp3; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -182,7 +209,9 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 64D0772E2C29A5DC006355A4 /* DSQ.xcframework in Frameworks */, + ECCBA6BA2C29BE2800D6D9FB /* RealityKit.framework in Frameworks */, + ECCBA6B82C29BE1900D6D9FB /* ARKit.framework in Frameworks */, + ECF9AD2C2C29CF5C00238A06 /* DSQ.xcframework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -231,6 +260,7 @@ 6458345A2BF5F92300E18321 /* DouShouQi_App */ = { isa = PBXGroup; children = ( + ECCBA6BB2C29BE3C00D6D9FB /* ARViews */, 646F04BF2C0F5BD1003C8600 /* AppModelAndExtension */, 646FA83C2C072284001466BA /* ViewModel */, ECB6364F2C04635D007CD5E2 /* SoundPlayerClass */, @@ -374,6 +404,7 @@ 649B59A52BF64B1B002BAE38 /* Assets */ = { isa = PBXGroup; children = ( + ECCBA6C02C29C0A300D6D9FB /* ARObjects */, EC62C5042C045BE00048CD0B /* Musics */, EC62C5032C045BD30048CD0B /* Sounds */, 649B59B02BF65360002BAE38 /* TextStyles */, @@ -416,7 +447,9 @@ 64C87E222C09D52600CCD451 /* Frameworks */ = { isa = PBXGroup; children = ( - EC62C5322C1C188F0048CD0B /* DSQ.xcframework */, + ECCBA6B92C29BE2800D6D9FB /* RealityKit.framework */, + ECCBA6B72C29BE1900D6D9FB /* ARKit.framework */, + ECCBA6B32C29BCCD00D6D9FB /* DSQ.xcframework */, ); name = Frameworks; sourceTree = ""; @@ -441,9 +474,9 @@ EC62C5032C045BD30048CD0B /* Sounds */ = { isa = PBXGroup; children = ( - EC4D7EFE2C29C1550076CD8A /* Start.mp3 */, - EC4D7EFC2C29C14F0076CD8A /* SelectFighterSound.mp3 */, - EC4D7EF92C29C1470076CD8A /* Fight.mp3 */, + ECF9AD332C29D46A00238A06 /* Fight.mp3 */, + ECF9AD342C29D46A00238A06 /* SelectFighterSound.mp3 */, + ECF9AD322C29D46A00238A06 /* Start.mp3 */, EC62C50C2C046D9E0048CD0B /* SplashScreenSound.mp3 */, EC62C5052C045C1A0048CD0B /* TitleScreenButtonSound.mp3 */, ); @@ -499,6 +532,16 @@ path = SoundPlayerClass; sourceTree = ""; }; + ECCBA6BB2C29BE3C00D6D9FB /* ARViews */ = { + isa = PBXGroup; + children = ( + ECCBA6BC2C29BFF600D6D9FB /* ARBoard.swift */, + ECCBA6C22C29C25000D6D9FB /* ARKitUIViewBoard.swift */, + ECCBA6C42C29C2F500D6D9FB /* ARKitViewRepresentable.swift */, + ); + path = ARViews; + sourceTree = ""; + }; ECE7770E2C1C6FB200D354B0 /* CoreData */ = { isa = PBXGroup; children = ( @@ -534,6 +577,7 @@ 645834542BF5F92300E18321 /* Sources */, 645834552BF5F92300E18321 /* Frameworks */, 645834562BF5F92300E18321 /* Resources */, + ECF9AD2E2C29CF5C00238A06 /* Embed Frameworks */, ); buildRules = ( ); @@ -642,18 +686,19 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - EC4D7EFF2C29C1550076CD8A /* Start.mp3 in Resources */, EC0540CA2C08BD8D0032E9EF /* GameMusic.mp3 in Resources */, 649B59A72BF64BA9002BAE38 /* Colors.xcassets in Resources */, 6493C1C02C046BF900B5121D /* samurai.ttf in Resources */, + ECCBA6C12C29C0A300D6D9FB /* ARObjects in Resources */, EC62C5062C045C1A0048CD0B /* TitleScreenButtonSound.mp3 in Resources */, + ECF9AD352C29D46A00238A06 /* Start.mp3 in Resources */, + ECF9AD372C29D46A00238A06 /* SelectFighterSound.mp3 in Resources */, EC62C5172C0620C00048CD0B /* rap.mp3 in Resources */, EC62C50D2C046D9E0048CD0B /* SplashScreenSound.mp3 in Resources */, + ECF9AD362C29D46A00238A06 /* Fight.mp3 in Resources */, 645834632BF5F92500E18321 /* Preview Assets.xcassets in Resources */, 645834602BF5F92500E18321 /* Assets.xcassets in Resources */, - EC4D7EFB2C29C1470076CD8A /* Fight.mp3 in Resources */, ECB636552C047992007CD5E2 /* Image.xcassets in Resources */, - EC4D7EFD2C29C14F0076CD8A /* SelectFighterSound.mp3 in Resources */, EC62C4FF2C0457AD0048CD0B /* TitleScreenMusic.mp3 in Resources */, ); runOnlyForDeploymentPostprocessing = 0; @@ -684,6 +729,7 @@ 649B59A92BF64C6A002BAE38 /* Colors.swift in Sources */, 646FA8432C0730D6001466BA /* HistoricVM.swift in Sources */, EC3EE4B12C0CD46000710153 /* ButtonView.swift in Sources */, + ECCBA6C52C29C2F500D6D9FB /* ARKitViewRepresentable.swift in Sources */, 649B59B42BF653E1002BAE38 /* ViewTitleTextStyle.swift in Sources */, 649B59AE2BF64EAB002BAE38 /* AppImages.swift in Sources */, ECB636532C0463A9007CD5E2 /* SoundPlayer.swift in Sources */, @@ -694,6 +740,7 @@ EC05BFCB2C05F470000F7B19 /* GameScene.swift in Sources */, 64D2D74E2C25D380009BD010 /* Animals.Symbols.swift in Sources */, 6458345C2BF5F92300E18321 /* DouShouQi_AppApp.swift in Sources */, + ECCBA6BD2C29BFF600D6D9FB /* ARBoard.swift in Sources */, ECB636512C046379007CD5E2 /* MusicPlayer.swift in Sources */, ECB6364E2C04628E007CD5E2 /* SpriteMeeple.swift in Sources */, 649B59A42BF64574002BAE38 /* TitlePageFrame.swift in Sources */, @@ -733,6 +780,7 @@ EC62C5292C1974000048CD0B /* PlayersVM.swift in Sources */, 6437FF132C25846F009D0EAF /* PlayingGameVM.swift in Sources */, ECF3FD3A2C29A20D00F5E62B /* HistoricListVM.swift in Sources */, + ECCBA6C32C29C25000D6D9FB /* ARKitUIViewBoard.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -888,12 +936,16 @@ buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; - CODE_SIGN_STYLE = Automatic; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + CODE_SIGN_STYLE = Manual; CURRENT_PROJECT_VERSION = 1; DEVELOPMENT_ASSET_PATHS = "\"DouShouQi_App/Preview Content\""; + DEVELOPMENT_TEAM = ""; + "DEVELOPMENT_TEAM[sdk=iphoneos*]" = 67U885533Q; ENABLE_PREVIEWS = YES; GENERATE_INFOPLIST_FILE = YES; INFOPLIST_FILE = "DouShouQi-App-Info.plist"; + INFOPLIST_KEY_NSCameraUsageDescription = ""; INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES; INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; INFOPLIST_KEY_UILaunchScreen_Generation = YES; @@ -904,8 +956,10 @@ "@executable_path/Frameworks", ); MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = "fr.uca.iut.DouShouQi-App"; + PRODUCT_BUNDLE_IDENTIFIER = fr.uca.iut.DouShouQI; PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + "PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = tpiOS_2024_06_21_off; SWIFT_EMIT_LOC_STRINGS = YES; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; @@ -917,12 +971,16 @@ buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; - CODE_SIGN_STYLE = Automatic; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + CODE_SIGN_STYLE = Manual; CURRENT_PROJECT_VERSION = 1; DEVELOPMENT_ASSET_PATHS = "\"DouShouQi_App/Preview Content\""; + DEVELOPMENT_TEAM = ""; + "DEVELOPMENT_TEAM[sdk=iphoneos*]" = 67U885533Q; ENABLE_PREVIEWS = YES; GENERATE_INFOPLIST_FILE = YES; INFOPLIST_FILE = "DouShouQi-App-Info.plist"; + INFOPLIST_KEY_NSCameraUsageDescription = ""; INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES; INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; INFOPLIST_KEY_UILaunchScreen_Generation = YES; @@ -933,8 +991,10 @@ "@executable_path/Frameworks", ); MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = "fr.uca.iut.DouShouQi-App"; + PRODUCT_BUNDLE_IDENTIFIER = fr.uca.iut.DouShouQI; PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + "PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = tpiOS_2024_06_21_off; SWIFT_EMIT_LOC_STRINGS = YES; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; @@ -1023,7 +1083,7 @@ 6458347B2BF5F92600E18321 /* Release */, ); defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; + defaultConfigurationName = Debug; }; 6458347C2BF5F92600E18321 /* Build configuration list for PBXNativeTarget "DouShouQi_App" */ = { isa = XCConfigurationList; @@ -1032,7 +1092,7 @@ 6458347E2BF5F92600E18321 /* Release */, ); defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; + defaultConfigurationName = Debug; }; 6458347F2BF5F92600E18321 /* Build configuration list for PBXNativeTarget "DouShouQi_AppTests" */ = { isa = XCConfigurationList; @@ -1041,7 +1101,7 @@ 645834812BF5F92600E18321 /* Release */, ); defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; + defaultConfigurationName = Debug; }; 645834822BF5F92600E18321 /* Build configuration list for PBXNativeTarget "DouShouQi_AppUITests" */ = { isa = XCConfigurationList; @@ -1050,7 +1110,7 @@ 645834842BF5F92600E18321 /* Release */, ); defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; + defaultConfigurationName = Debug; }; /* End XCConfigurationList section */ diff --git a/DouShouQi_App/DouShouQi_App/ARViews/ARBoard.swift b/DouShouQi_App/DouShouQi_App/ARViews/ARBoard.swift new file mode 100644 index 0000000..48fb4d9 --- /dev/null +++ b/DouShouQi_App/DouShouQi_App/ARViews/ARBoard.swift @@ -0,0 +1,22 @@ +// +// ARBoard.swift +// DouShouQi_App +// +// Created by Nathan Verdier on 24/06/2024. +// + +import RealityKit + +class ARBoard: Entity { + + required init(image: String) { + super.init() + if let boardEntity = try? Entity.load(named: image) { + self.addChild(boardEntity) + } + } + + @MainActor required init() { + fatalError("init() has not been implemented") + } +} diff --git a/DouShouQi_App/DouShouQi_App/ARViews/ARKitUIViewBoard.swift b/DouShouQi_App/DouShouQi_App/ARViews/ARKitUIViewBoard.swift new file mode 100644 index 0000000..8cb2b12 --- /dev/null +++ b/DouShouQi_App/DouShouQi_App/ARViews/ARKitUIViewBoard.swift @@ -0,0 +1,21 @@ +// +// ARKitUIViewBoard.swift +// DouShouQi_App +// +// Created by etudiant on 24/06/2024. +// + +import SwiftUI +import DouShouQiModel + +struct ARKitUIViewBoard: UIViewRepresentable { + + var aRKitViewRepresentable: ARKitViewRepresentable + + func makeUIView(context: Context) -> ARKitViewRepresentable { + return aRKitViewRepresentable + } + + func updateUIView(_ uiView: ARKitViewRepresentable, context: Context) {} +} + diff --git a/DouShouQi_App/DouShouQi_App/ARViews/ARKitViewRepresentable.swift b/DouShouQi_App/DouShouQi_App/ARViews/ARKitViewRepresentable.swift new file mode 100644 index 0000000..89ac6c5 --- /dev/null +++ b/DouShouQi_App/DouShouQi_App/ARViews/ARKitViewRepresentable.swift @@ -0,0 +1,44 @@ +// +// ARKitViewRepresentable.swift +// DouShouQi_App +// +// Created by etudiant on 24/06/2024. +// + +import SwiftUI +import ARKit +import RealityKit +import DouShouQiModel + +class ARKitViewRepresentable: ARView { + + required init(frame frameRect: CGRect) { + super.init(frame: frameRect) + } + + @MainActor required init?(coder decoder: NSCoder) { + fatalError("init(coder:) not implemented") + } + + convenience init(imageBoard: String = "board", cell_size: Float = 0.1145) { + self.init(frame: UIScreen.main.bounds) + do { + let game = try Game(withRules: ClassicRules(), andPlayer1: HumanPlayer(withName: "Player 1", andId: .player1)!, andPlayer2: HumanPlayer(withName: "Player 2", andId: .player2)!) + initBoard(withBoard: game.board, andImage: imageBoard) + } catch { + print("error") + } + } + + func applyConfiguration() { + let conf = ARWorldTrackingConfiguration() + self.session.run(conf) + } + + func initBoard(withBoard board: Board, andImage image: String) { + let anchor = AnchorEntity(.plane(.horizontal, classification: .any, minimumBounds: SIMD2(1, 1))) + let arBoard = ARBoard(image: image) + anchor.addChild(arBoard) + self.scene.addAnchor(anchor) + } +} diff --git a/DouShouQi_App/DouShouQi_App/Assets/ARObjects/board.usdz b/DouShouQi_App/DouShouQi_App/Assets/ARObjects/board.usdz new file mode 100644 index 0000000..740af5d Binary files /dev/null and b/DouShouQi_App/DouShouQi_App/Assets/ARObjects/board.usdz differ diff --git a/DouShouQi_App/DouShouQi_App/Assets/ARObjects/cat.usdz b/DouShouQi_App/DouShouQi_App/Assets/ARObjects/cat.usdz new file mode 100644 index 0000000..83112d6 Binary files /dev/null and b/DouShouQi_App/DouShouQi_App/Assets/ARObjects/cat.usdz differ diff --git a/DouShouQi_App/DouShouQi_App/Assets/ARObjects/dog.usdz b/DouShouQi_App/DouShouQi_App/Assets/ARObjects/dog.usdz new file mode 100644 index 0000000..88ab0f4 Binary files /dev/null and b/DouShouQi_App/DouShouQi_App/Assets/ARObjects/dog.usdz differ diff --git a/DouShouQi_App/DouShouQi_App/Assets/ARObjects/elephant.usdz b/DouShouQi_App/DouShouQi_App/Assets/ARObjects/elephant.usdz new file mode 100644 index 0000000..9565263 Binary files /dev/null and b/DouShouQi_App/DouShouQi_App/Assets/ARObjects/elephant.usdz differ diff --git a/DouShouQi_App/DouShouQi_App/Assets/ARObjects/leopard.usdz b/DouShouQi_App/DouShouQi_App/Assets/ARObjects/leopard.usdz new file mode 100644 index 0000000..f018773 Binary files /dev/null and b/DouShouQi_App/DouShouQi_App/Assets/ARObjects/leopard.usdz differ diff --git a/DouShouQi_App/DouShouQi_App/Assets/ARObjects/lion.usdz b/DouShouQi_App/DouShouQi_App/Assets/ARObjects/lion.usdz new file mode 100644 index 0000000..aa901d0 Binary files /dev/null and b/DouShouQi_App/DouShouQi_App/Assets/ARObjects/lion.usdz differ diff --git a/DouShouQi_App/DouShouQi_App/Assets/ARObjects/rat.usdz b/DouShouQi_App/DouShouQi_App/Assets/ARObjects/rat.usdz new file mode 100644 index 0000000..d8cc30d Binary files /dev/null and b/DouShouQi_App/DouShouQi_App/Assets/ARObjects/rat.usdz differ diff --git a/DouShouQi_App/DouShouQi_App/Assets/ARObjects/tiger.usdz b/DouShouQi_App/DouShouQi_App/Assets/ARObjects/tiger.usdz new file mode 100644 index 0000000..dc6792d Binary files /dev/null and b/DouShouQi_App/DouShouQi_App/Assets/ARObjects/tiger.usdz differ diff --git a/DouShouQi_App/DouShouQi_App/Assets/ARObjects/wolf.usdz b/DouShouQi_App/DouShouQi_App/Assets/ARObjects/wolf.usdz new file mode 100644 index 0000000..0b45669 Binary files /dev/null and b/DouShouQi_App/DouShouQi_App/Assets/ARObjects/wolf.usdz differ diff --git a/DouShouQi_App/DouShouQi_App/Assets/Colors/Colors.swift b/DouShouQi_App/DouShouQi_App/Assets/Colors/Colors.swift index 3b7bb34..d038e02 100644 --- a/DouShouQi_App/DouShouQi_App/Assets/Colors/Colors.swift +++ b/DouShouQi_App/DouShouQi_App/Assets/Colors/Colors.swift @@ -13,6 +13,7 @@ public struct Colors { static let Button = Color("ButtonColor") static let MeepleP1 = UIColor(named: "MeepleP1") static let TextButton = Color("ButtonTextColor") + static let PopupBackground = Color("PopUpBackground") static let MeepleP2 = UIColor(named: "MeepleP2") static let WinnerBackground = Color("WinnerBackground") } diff --git a/DouShouQi_App/DouShouQi_App/Assets/Colors/Colors.xcassets/Color.colorset/Contents.json b/DouShouQi_App/DouShouQi_App/Assets/Colors/Colors.xcassets/Color.colorset/Contents.json index 22c4bb0..0425637 100644 --- a/DouShouQi_App/DouShouQi_App/Assets/Colors/Colors.xcassets/Color.colorset/Contents.json +++ b/DouShouQi_App/DouShouQi_App/Assets/Colors/Colors.xcassets/Color.colorset/Contents.json @@ -23,9 +23,9 @@ "color-space" : "srgb", "components" : { "alpha" : "1.000", - "blue" : "1.000", - "green" : "1.000", - "red" : "1.000" + "blue" : "0.000", + "green" : "0.000", + "red" : "0.000" } }, "idiom" : "universal" diff --git a/DouShouQi_App/DouShouQi_App/Assets/Colors/Colors.xcassets/PopUpBackground.colorset/Contents.json b/DouShouQi_App/DouShouQi_App/Assets/Colors/Colors.xcassets/PopUpBackground.colorset/Contents.json new file mode 100644 index 0000000..fe9a67d --- /dev/null +++ b/DouShouQi_App/DouShouQi_App/Assets/Colors/Colors.xcassets/PopUpBackground.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "1.000", + "green" : "1.000", + "red" : "1.000" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.600", + "green" : "0.600", + "red" : "0.600" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/DouShouQi_App/DouShouQi_App/Assets/Images/Image.xcassets/Title.imageset/title-background.svg b/DouShouQi_App/DouShouQi_App/Assets/Images/Image.xcassets/Title.imageset/title-background.svg index a587d3e..beeac20 100644 --- a/DouShouQi_App/DouShouQi_App/Assets/Images/Image.xcassets/Title.imageset/title-background.svg +++ b/DouShouQi_App/DouShouQi_App/Assets/Images/Image.xcassets/Title.imageset/title-background.svg @@ -1,7 +1,9 @@ - - - - - - - + + title-background-svg + + + + + \ No newline at end of file diff --git a/DouShouQi_App/DouShouQi_App/Assets/Sounds/Fight.mp3 b/DouShouQi_App/DouShouQi_App/Assets/Sounds/Fight.mp3 new file mode 100644 index 0000000..2ce565c Binary files /dev/null and b/DouShouQi_App/DouShouQi_App/Assets/Sounds/Fight.mp3 differ diff --git a/DouShouQi_App/DouShouQi_App/Assets/Sounds/SelectFighterSound.mp3 b/DouShouQi_App/DouShouQi_App/Assets/Sounds/SelectFighterSound.mp3 new file mode 100644 index 0000000..249cb10 Binary files /dev/null and b/DouShouQi_App/DouShouQi_App/Assets/Sounds/SelectFighterSound.mp3 differ diff --git a/DouShouQi_App/DouShouQi_App/Assets/Sounds/Start.mp3 b/DouShouQi_App/DouShouQi_App/Assets/Sounds/Start.mp3 new file mode 100644 index 0000000..ad960ee Binary files /dev/null and b/DouShouQi_App/DouShouQi_App/Assets/Sounds/Start.mp3 differ diff --git a/DouShouQi_App/DouShouQi_App/Components/Player/AddPlayerView.swift b/DouShouQi_App/DouShouQi_App/Components/Player/AddPlayerView.swift index 8b5cc75..2759628 100644 --- a/DouShouQi_App/DouShouQi_App/Components/Player/AddPlayerView.swift +++ b/DouShouQi_App/DouShouQi_App/Components/Player/AddPlayerView.swift @@ -75,16 +75,16 @@ struct AddPlayerView: View { isPresented = false }) { Text("Cancel") - .foregroundColor(.white) + .foregroundColor(Colors.TextButton) .padding() - .background(Color.red) + .background(Colors.Button) .cornerRadius(10) } } } .padding() .frame(maxWidth: 300) - .background(Color.white) + .background(Colors.PopupBackground) .cornerRadius(20) .shadow(radius: 10) .alert(isPresented: $showAlert) { diff --git a/DouShouQi_App/DouShouQi_App/Components/Player/PlayerRow.swift b/DouShouQi_App/DouShouQi_App/Components/Player/PlayerRow.swift index e42dbb7..69f4838 100644 --- a/DouShouQi_App/DouShouQi_App/Components/Player/PlayerRow.swift +++ b/DouShouQi_App/DouShouQi_App/Components/Player/PlayerRow.swift @@ -43,7 +43,6 @@ struct PlayerRow: View { } } .padding() - .background(Color.white) .cornerRadius(10) .shadow(radius: 1) } diff --git a/DouShouQi_App/DouShouQi_App/Components/Player/PlayerStatView.swift b/DouShouQi_App/DouShouQi_App/Components/Player/PlayerStatView.swift index 5cbed56..71591b4 100644 --- a/DouShouQi_App/DouShouQi_App/Components/Player/PlayerStatView.swift +++ b/DouShouQi_App/DouShouQi_App/Components/Player/PlayerStatView.swift @@ -23,6 +23,7 @@ struct PlayerStatView: View { .padding(.top, 10) } else { Image(systemName: "person.circle.fill") + .resizable() .frame(width: 100, height: 100) .clipShape(Circle()) @@ -32,7 +33,7 @@ struct PlayerStatView: View { Text(player.player.name) .font(.largeTitle) - .foregroundColor(.black) + .foregroundColor(Colors.TitleText) .padding(.top, 10) VStack(alignment: .leading, spacing: 10) { diff --git a/DouShouQi_App/DouShouQi_App/DouShouQi_AppApp.swift b/DouShouQi_App/DouShouQi_App/DouShouQi_AppApp.swift index 111893b..83e554c 100644 --- a/DouShouQi_App/DouShouQi_App/DouShouQi_AppApp.swift +++ b/DouShouQi_App/DouShouQi_App/DouShouQi_AppApp.swift @@ -8,7 +8,7 @@ import SwiftUI - @main +@main struct DouShouQi_AppApp: App { // Create an instance of SettingsVM @StateObject private var settingsVM = SettingsVM() diff --git a/DouShouQi_App/DouShouQi_App/Views/Menu/MainMenuView.swift b/DouShouQi_App/DouShouQi_App/Views/Menu/MainMenuView.swift index 2758ef4..cc7382d 100644 --- a/DouShouQi_App/DouShouQi_App/Views/Menu/MainMenuView.swift +++ b/DouShouQi_App/DouShouQi_App/Views/Menu/MainMenuView.swift @@ -19,6 +19,8 @@ struct MainMenuView: View { @State var showBestScores = false @State var showPlayers = false @State var showSettings = false + @State var showARKit = false + @StateObject var historicList = HistoricListVM() let images: [String] = [AppImages.SemiLion, AppImages.SemiDog, AppImages.SemiRat, AppImages.SemiWolf, AppImages.SemiLeopard, AppImages.SemiElephant, AppImages.SemiCat] // Add your image names here @@ -49,6 +51,7 @@ struct MainMenuView: View { MainMenuButton(text: "Best Scores", sound: "TitleScreenButtonSound",onClick: { showBestScores = true }, topRightCorner: 10, bottomRightCorner: 10) MainMenuButton(text: "Players", sound: "TitleScreenButtonSound",onClick: { showPlayers = true }, topRightCorner: 10, bottomRightCorner: 10) MainMenuButton(text: "Settings", sound: "TitleScreenButtonSound",onClick: { showSettings = true }, topRightCorner: 10, bottomRightCorner: 10) + MainMenuButton(text: "AR Kit Version", sound: "TitleScreenButtonSound", onClick: { showARKit = true }, topRightCorner: 10, bottomRightCorner: 10) } .navigationDestination(isPresented: $showSelectPlayer) { SelectPlayerView(isDisplayed: $showSelectPlayer) @@ -65,6 +68,9 @@ struct MainMenuView: View { .navigationDestination(isPresented: $showSettings) { SettingsView() } + .navigationDestination(isPresented: $showARKit) { + ARKitUIViewBoard(aRKitViewRepresentable: ARKitViewRepresentable()) + } if let currentImage = currentImage { Image(currentImage) @@ -95,10 +101,9 @@ struct MainMenuView: View { .frame(alignment: .trailing) } .padding() - .background(Color.white) .overlay( Rectangle() - .stroke(Color.black, lineWidth: 1) + .stroke(Colors.TitleText, lineWidth: 1) ) Spacer()