diff --git a/ArkitDoushiQi/ArkitDoushiQi.xcodeproj/project.pbxproj b/ArkitDoushiQi/ArkitDoushiQi.xcodeproj/project.pbxproj index 3b3a615..a3a685e 100644 --- a/ArkitDoushiQi/ArkitDoushiQi.xcodeproj/project.pbxproj +++ b/ArkitDoushiQi/ArkitDoushiQi.xcodeproj/project.pbxproj @@ -7,6 +7,9 @@ objects = { /* Begin PBXBuildFile section */ + 82CE59E92C045D1100ADEE24 /* GameScene.swift in Sources */ = {isa = PBXBuildFile; fileRef = 82CE59E82C045D1100ADEE24 /* GameScene.swift */; }; + 82CE59EB2C045E3800ADEE24 /* GameView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 82CE59EA2C045E3800ADEE24 /* GameView.swift */; }; + 82CE59EF2C0460E500ADEE24 /* SpriteMoople.swift in Sources */ = {isa = PBXBuildFile; fileRef = 82CE59EE2C0460E500ADEE24 /* SpriteMoople.swift */; }; 82F9D3312BFE3A9F009EDFAF /* HistoryGameDetail.swift in Sources */ = {isa = PBXBuildFile; fileRef = 82F9D3302BFE3A9F009EDFAF /* HistoryGameDetail.swift */; }; 82F9D3332BFE3B12009EDFAF /* HistoryHeader.swift in Sources */ = {isa = PBXBuildFile; fileRef = 82F9D3322BFE3B12009EDFAF /* HistoryHeader.swift */; }; 82F9D3362BFE3B3C009EDFAF /* HistoryView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 82F9D3352BFE3B3C009EDFAF /* HistoryView.swift */; }; @@ -45,6 +48,9 @@ /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ + 82CE59E82C045D1100ADEE24 /* GameScene.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GameScene.swift; sourceTree = ""; }; + 82CE59EA2C045E3800ADEE24 /* GameView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GameView.swift; sourceTree = ""; }; + 82CE59EE2C0460E500ADEE24 /* SpriteMoople.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SpriteMoople.swift; sourceTree = ""; }; 82F9D3302BFE3A9F009EDFAF /* HistoryGameDetail.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HistoryGameDetail.swift; sourceTree = ""; }; 82F9D3322BFE3B12009EDFAF /* HistoryHeader.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HistoryHeader.swift; sourceTree = ""; }; 82F9D3352BFE3B3C009EDFAF /* HistoryView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HistoryView.swift; sourceTree = ""; }; @@ -101,6 +107,24 @@ name = Frameworks; sourceTree = ""; }; + 82CE59E52C045C7500ADEE24 /* Game */ = { + isa = PBXGroup; + children = ( + 82CE59EC2C0460AA00ADEE24 /* SKNodes */, + 82CE59E82C045D1100ADEE24 /* GameScene.swift */, + 82CE59EA2C045E3800ADEE24 /* GameView.swift */, + ); + path = Game; + sourceTree = ""; + }; + 82CE59EC2C0460AA00ADEE24 /* SKNodes */ = { + isa = PBXGroup; + children = ( + 82CE59EE2C0460E500ADEE24 /* SpriteMoople.swift */, + ); + path = SKNodes; + sourceTree = ""; + }; 82F9D32F2BFE3A75009EDFAF /* History */ = { isa = PBXGroup; children = ( @@ -136,6 +160,7 @@ C205A2B52BF373360097BD93 /* ArkitDoushiQi */ = { isa = PBXGroup; children = ( + 82CE59E52C045C7500ADEE24 /* Game */, C205A2B62BF373360097BD93 /* ArkitDoushiQiApp.swift */, C205A2B82BF373360097BD93 /* ContentView.swift */, C205A2BA2BF373380097BD93 /* Assets.xcassets */, @@ -344,6 +369,8 @@ buildActionMask = 2147483647; files = ( C205A2B92BF373360097BD93 /* ContentView.swift in Sources */, + 82CE59EF2C0460E500ADEE24 /* SpriteMoople.swift in Sources */, + 82CE59E92C045D1100ADEE24 /* GameScene.swift in Sources */, 82F9D3312BFE3A9F009EDFAF /* HistoryGameDetail.swift in Sources */, C24659E92BF60FAA004E80D5 /* MainMenuButtonComponent.swift in Sources */, C24659E52BF5FE09004E80D5 /* MainMenu.swift in Sources */, @@ -352,6 +379,7 @@ C205A2B72BF373360097BD93 /* ArkitDoushiQiApp.swift in Sources */, C20310D62BFCB5FB0031657D /* PickerComponent.swift in Sources */, 82F9D3332BFE3B12009EDFAF /* HistoryHeader.swift in Sources */, + 82CE59EB2C045E3800ADEE24 /* GameView.swift in Sources */, C20310DA2BFCC8600031657D /* ToggleComponent.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; diff --git a/ArkitDoushiQi/ArkitDoushiQi/.DS_Store b/ArkitDoushiQi/ArkitDoushiQi/.DS_Store index 8eb6e90..e4f19dd 100644 Binary files a/ArkitDoushiQi/ArkitDoushiQi/.DS_Store and b/ArkitDoushiQi/ArkitDoushiQi/.DS_Store differ diff --git a/ArkitDoushiQi/ArkitDoushiQi/Assets.xcassets/Image.imageset/Contents.json b/ArkitDoushiQi/ArkitDoushiQi/Assets.xcassets/Image.imageset/Contents.json index 6e18dfc..a19a549 100644 --- a/ArkitDoushiQi/ArkitDoushiQi/Assets.xcassets/Image.imageset/Contents.json +++ b/ArkitDoushiQi/ArkitDoushiQi/Assets.xcassets/Image.imageset/Contents.json @@ -1,7 +1,6 @@ { "images" : [ { - "filename" : "de79f4d6-f19b-4d93-9356-d005fdb72f2a-91708.png", "idiom" : "universal", "scale" : "1x" }, diff --git a/ArkitDoushiQi/ArkitDoushiQi/Assets.xcassets/Image.imageset/de79f4d6-f19b-4d93-9356-d005fdb72f2a-91708.png b/ArkitDoushiQi/ArkitDoushiQi/Assets.xcassets/Image.imageset/de79f4d6-f19b-4d93-9356-d005fdb72f2a-91708.png deleted file mode 100644 index c0107f0..0000000 Binary files a/ArkitDoushiQi/ArkitDoushiQi/Assets.xcassets/Image.imageset/de79f4d6-f19b-4d93-9356-d005fdb72f2a-91708.png and /dev/null differ diff --git a/ArkitDoushiQi/ArkitDoushiQi/Assets.xcassets/images/Contents.json b/ArkitDoushiQi/ArkitDoushiQi/Assets.xcassets/images/Contents.json new file mode 100644 index 0000000..73c0059 --- /dev/null +++ b/ArkitDoushiQi/ArkitDoushiQi/Assets.xcassets/images/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/ArkitDoushiQi/ArkitDoushiQi/Assets.xcassets/images/board.imageset/Contents.json b/ArkitDoushiQi/ArkitDoushiQi/Assets.xcassets/images/board.imageset/Contents.json new file mode 100644 index 0000000..e5d476d --- /dev/null +++ b/ArkitDoushiQi/ArkitDoushiQi/Assets.xcassets/images/board.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "board.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/ArkitDoushiQi/ArkitDoushiQi/Assets.xcassets/images/board.imageset/board.png b/ArkitDoushiQi/ArkitDoushiQi/Assets.xcassets/images/board.imageset/board.png new file mode 100644 index 0000000..faea3d9 Binary files /dev/null and b/ArkitDoushiQi/ArkitDoushiQi/Assets.xcassets/images/board.imageset/board.png differ diff --git a/ArkitDoushiQi/ArkitDoushiQi/Assets.xcassets/images/catMeeple.imageset/Contents.json b/ArkitDoushiQi/ArkitDoushiQi/Assets.xcassets/images/catMeeple.imageset/Contents.json new file mode 100644 index 0000000..e16775a --- /dev/null +++ b/ArkitDoushiQi/ArkitDoushiQi/Assets.xcassets/images/catMeeple.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "catMeeple.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/ArkitDoushiQi/ArkitDoushiQi/Assets.xcassets/images/catMeeple.imageset/catMeeple.png b/ArkitDoushiQi/ArkitDoushiQi/Assets.xcassets/images/catMeeple.imageset/catMeeple.png new file mode 100644 index 0000000..ab1ae10 Binary files /dev/null and b/ArkitDoushiQi/ArkitDoushiQi/Assets.xcassets/images/catMeeple.imageset/catMeeple.png differ diff --git a/ArkitDoushiQi/ArkitDoushiQi/Assets.xcassets/images/dogMeeple.imageset/Contents.json b/ArkitDoushiQi/ArkitDoushiQi/Assets.xcassets/images/dogMeeple.imageset/Contents.json new file mode 100644 index 0000000..bd720fa --- /dev/null +++ b/ArkitDoushiQi/ArkitDoushiQi/Assets.xcassets/images/dogMeeple.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "dogMeeple.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/ArkitDoushiQi/ArkitDoushiQi/Assets.xcassets/images/dogMeeple.imageset/dogMeeple.png b/ArkitDoushiQi/ArkitDoushiQi/Assets.xcassets/images/dogMeeple.imageset/dogMeeple.png new file mode 100644 index 0000000..6f74e34 Binary files /dev/null and b/ArkitDoushiQi/ArkitDoushiQi/Assets.xcassets/images/dogMeeple.imageset/dogMeeple.png differ diff --git a/ArkitDoushiQi/ArkitDoushiQi/Assets.xcassets/images/elephantMeeple.imageset/Contents.json b/ArkitDoushiQi/ArkitDoushiQi/Assets.xcassets/images/elephantMeeple.imageset/Contents.json new file mode 100644 index 0000000..25dc901 --- /dev/null +++ b/ArkitDoushiQi/ArkitDoushiQi/Assets.xcassets/images/elephantMeeple.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "elephantMeeple.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/ArkitDoushiQi/ArkitDoushiQi/Assets.xcassets/images/elephantMeeple.imageset/elephantMeeple.png b/ArkitDoushiQi/ArkitDoushiQi/Assets.xcassets/images/elephantMeeple.imageset/elephantMeeple.png new file mode 100644 index 0000000..6db0078 Binary files /dev/null and b/ArkitDoushiQi/ArkitDoushiQi/Assets.xcassets/images/elephantMeeple.imageset/elephantMeeple.png differ diff --git a/ArkitDoushiQi/ArkitDoushiQi/Assets.xcassets/images/leopardMeeple.imageset/Contents.json b/ArkitDoushiQi/ArkitDoushiQi/Assets.xcassets/images/leopardMeeple.imageset/Contents.json new file mode 100644 index 0000000..1563863 --- /dev/null +++ b/ArkitDoushiQi/ArkitDoushiQi/Assets.xcassets/images/leopardMeeple.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "leopardMeeple.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/ArkitDoushiQi/ArkitDoushiQi/Assets.xcassets/images/leopardMeeple.imageset/leopardMeeple.png b/ArkitDoushiQi/ArkitDoushiQi/Assets.xcassets/images/leopardMeeple.imageset/leopardMeeple.png new file mode 100644 index 0000000..7e61102 Binary files /dev/null and b/ArkitDoushiQi/ArkitDoushiQi/Assets.xcassets/images/leopardMeeple.imageset/leopardMeeple.png differ diff --git a/ArkitDoushiQi/ArkitDoushiQi/Assets.xcassets/images/lionMeeple.imageset/Contents.json b/ArkitDoushiQi/ArkitDoushiQi/Assets.xcassets/images/lionMeeple.imageset/Contents.json new file mode 100644 index 0000000..5620a01 --- /dev/null +++ b/ArkitDoushiQi/ArkitDoushiQi/Assets.xcassets/images/lionMeeple.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "lionMeeple.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/ArkitDoushiQi/ArkitDoushiQi/Assets.xcassets/images/lionMeeple.imageset/lionMeeple.png b/ArkitDoushiQi/ArkitDoushiQi/Assets.xcassets/images/lionMeeple.imageset/lionMeeple.png new file mode 100644 index 0000000..92bdf45 Binary files /dev/null and b/ArkitDoushiQi/ArkitDoushiQi/Assets.xcassets/images/lionMeeple.imageset/lionMeeple.png differ diff --git a/ArkitDoushiQi/ArkitDoushiQi/Assets.xcassets/images/ratMeeple.imageset/Contents.json b/ArkitDoushiQi/ArkitDoushiQi/Assets.xcassets/images/ratMeeple.imageset/Contents.json new file mode 100644 index 0000000..8f45e50 --- /dev/null +++ b/ArkitDoushiQi/ArkitDoushiQi/Assets.xcassets/images/ratMeeple.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "ratMeeple.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/ArkitDoushiQi/ArkitDoushiQi/Assets.xcassets/images/ratMeeple.imageset/ratMeeple.png b/ArkitDoushiQi/ArkitDoushiQi/Assets.xcassets/images/ratMeeple.imageset/ratMeeple.png new file mode 100644 index 0000000..5986ad5 Binary files /dev/null and b/ArkitDoushiQi/ArkitDoushiQi/Assets.xcassets/images/ratMeeple.imageset/ratMeeple.png differ diff --git a/ArkitDoushiQi/ArkitDoushiQi/Assets.xcassets/images/tigerMeeple.imageset/Contents.json b/ArkitDoushiQi/ArkitDoushiQi/Assets.xcassets/images/tigerMeeple.imageset/Contents.json new file mode 100644 index 0000000..a25d3e5 --- /dev/null +++ b/ArkitDoushiQi/ArkitDoushiQi/Assets.xcassets/images/tigerMeeple.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "tigerMeeple.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/ArkitDoushiQi/ArkitDoushiQi/Assets.xcassets/images/tigerMeeple.imageset/tigerMeeple.png b/ArkitDoushiQi/ArkitDoushiQi/Assets.xcassets/images/tigerMeeple.imageset/tigerMeeple.png new file mode 100644 index 0000000..e72b426 Binary files /dev/null and b/ArkitDoushiQi/ArkitDoushiQi/Assets.xcassets/images/tigerMeeple.imageset/tigerMeeple.png differ diff --git a/ArkitDoushiQi/ArkitDoushiQi/Assets.xcassets/images/wolfMeeple.imageset/Contents.json b/ArkitDoushiQi/ArkitDoushiQi/Assets.xcassets/images/wolfMeeple.imageset/Contents.json new file mode 100644 index 0000000..d48fdc9 --- /dev/null +++ b/ArkitDoushiQi/ArkitDoushiQi/Assets.xcassets/images/wolfMeeple.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "wolfMeeple.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/ArkitDoushiQi/ArkitDoushiQi/Assets.xcassets/images/wolfMeeple.imageset/wolfMeeple.png b/ArkitDoushiQi/ArkitDoushiQi/Assets.xcassets/images/wolfMeeple.imageset/wolfMeeple.png new file mode 100644 index 0000000..7b46015 Binary files /dev/null and b/ArkitDoushiQi/ArkitDoushiQi/Assets.xcassets/images/wolfMeeple.imageset/wolfMeeple.png differ diff --git a/ArkitDoushiQi/ArkitDoushiQi/Game/GameScene.swift b/ArkitDoushiQi/ArkitDoushiQi/Game/GameScene.swift new file mode 100644 index 0000000..3f2aa8c --- /dev/null +++ b/ArkitDoushiQi/ArkitDoushiQi/Game/GameScene.swift @@ -0,0 +1,60 @@ +// +// MyScene.swift +// ArkitDoushiQi +// +// Created by Enzo JOLYS on 27/05/2024. +// + +import Foundation +import SpriteKit +import DouShouQiModel + +class GameScene : SKScene { + + let imageBoard:SKSpriteNode = SKSpriteNode(imageNamed: "board") + + + var pieces: [Owner : [SpriteMoople]] = [ .player1 : [ SpriteMoople(nameImage: "catMeeple", couleur: .red), + SpriteMoople(nameImage: "dogMeeple", couleur: .red), + SpriteMoople(nameImage: "leopardMeeple", couleur: .red), + SpriteMoople(nameImage: "lionMeeple", couleur: .red), + SpriteMoople(nameImage: "ratMeeple", couleur: .red), + SpriteMoople(nameImage: "wolfMeeple", couleur: .red)], + .player2 : [ SpriteMoople(nameImage: "catMeeple", couleur: .blue), + SpriteMoople(nameImage: "dogMeeple", couleur: .blue), + SpriteMoople(nameImage: "leopardMeeple", couleur: .blue), + SpriteMoople(nameImage: "lionMeeple", couleur: .blue), + SpriteMoople(nameImage: "ratMeeple", couleur: .blue), + SpriteMoople(nameImage: "wolfMeeple", couleur: .blue)]] + + override init(size: CGSize) { + super.init(size: size) + + // -- -- // + scaleMode = .aspectFit + anchorPoint = CGPoint(x: 0.5, y: 0.5) + self.addChild(imageBoard) + // -- -- // + + let woolf = SpriteMoople(nameImage: "wolfMeeple", couleur: .red) + let cat = SpriteMoople(nameImage: "catMeeple", couleur: .blue) + self.addChild(woolf) + self.addChild(cat) + + + for c in pieces.flatMap({ _,values in return values }) + { + self.addChild(c) + } + + + } + + + + + required init?(coder aDecoder: NSCoder) { + super.init(coder: aDecoder) + } +} + diff --git a/ArkitDoushiQi/ArkitDoushiQi/Game/GameView.swift b/ArkitDoushiQi/ArkitDoushiQi/Game/GameView.swift new file mode 100644 index 0000000..427396b --- /dev/null +++ b/ArkitDoushiQi/ArkitDoushiQi/Game/GameView.swift @@ -0,0 +1,24 @@ +// +// GameView.swift +// ArkitDoushiQi +// +// Created by Enzo JOLYS on 27/05/2024. +// + +import SwiftUI +import SpriteKit + +struct GameView: View { + + var game:GameScene = GameScene(size: CGSize(width: 940, height: 740)) + + var body: some View { + SpriteView(scene: game) + } +} + +struct GameView_Previews: PreviewProvider { + static var previews: some View { + GameView() + } +} diff --git a/ArkitDoushiQi/ArkitDoushiQi/Game/SKNodes/SpriteMoople.swift b/ArkitDoushiQi/ArkitDoushiQi/Game/SKNodes/SpriteMoople.swift new file mode 100644 index 0000000..4e985cb --- /dev/null +++ b/ArkitDoushiQi/ArkitDoushiQi/Game/SKNodes/SpriteMoople.swift @@ -0,0 +1,33 @@ +// +// SpriteMoople.swift +// ArkitDoushiQi +// +// Created by Enzo JOLYS on 27/05/2024. +// + +import Foundation +import SpriteKit + +class SpriteMoople : SKNode { + + let image:SKSpriteNode + let ellipse:SKShapeNode = SKShapeNode(circleOfRadius: 40) + + init(nameImage:String,couleur:UIColor){ + ellipse.fillColor = couleur + image = SKSpriteNode(imageNamed: nameImage) + + super.init() + self.position = CGPoint(x: 0, y: 0) + self.addChild(ellipse) + self.addChild(image) + } + + + required init?(coder aDecoder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + + +}