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 @@
-
-
-
+
\ 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 @@
-
-
-
+
\ 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()