From bfa8323744a1260ce068c327ac1d32eacda8c203 Mon Sep 17 00:00:00 2001 From: Your Name Date: Thu, 30 May 2024 14:09:51 +0200 Subject: [PATCH] avancement touch --- .../ArkitDoushiQi/ArkitDoushiQiApp.swift | 4 +- .../ArkitDoushiQi/Game/GameScene.swift | 43 ++++++++++------- .../Game/SKNodes/SpriteMoople.swift | 45 +++++++++++++++--- NE_PAS_TOUCHER/.DS_Store | Bin 0 -> 6148 bytes 4 files changed, 67 insertions(+), 25 deletions(-) create mode 100644 NE_PAS_TOUCHER/.DS_Store diff --git a/ArkitDoushiQi/ArkitDoushiQi/ArkitDoushiQiApp.swift b/ArkitDoushiQi/ArkitDoushiQi/ArkitDoushiQiApp.swift index cfe6191..8922dc3 100644 --- a/ArkitDoushiQi/ArkitDoushiQi/ArkitDoushiQiApp.swift +++ b/ArkitDoushiQi/ArkitDoushiQi/ArkitDoushiQiApp.swift @@ -19,8 +19,10 @@ struct ArkitDoushiQiApp: App { @AppStorage("isDarkMode") private var isDarkMode = false var body: some Scene { WindowGroup { + GameView() + /* MainMenu(playButtonText: "Jouer", registeredGamesButtonText: "Parties enregistrées",ParametersButtontText: "Paramètres") - .preferredColorScheme(isDarkMode ? .dark : .light) + .preferredColorScheme(isDarkMode ? .dark : .light)*/ } } } diff --git a/ArkitDoushiQi/ArkitDoushiQi/Game/GameScene.swift b/ArkitDoushiQi/ArkitDoushiQi/Game/GameScene.swift index 14908ac..503d60b 100644 --- a/ArkitDoushiQi/ArkitDoushiQi/Game/GameScene.swift +++ b/ArkitDoushiQi/ArkitDoushiQi/Game/GameScene.swift @@ -12,22 +12,26 @@ import DouShouQiModel class GameScene : SKScene { let imageBoard:SKSpriteNode = SKSpriteNode(imageNamed: "board") - var game:Game = try! Game(withRules: VerySimpleRules(), andPlayer1: Player(withName: "x", andId: .player1)!, andPlayer2: Player(withName: "y", andId: .player2)!) + var game:Game = try! Game(withRules: ClassicRules(), andPlayer1: Player(withName: "x", andId: .player1)!, andPlayer2: Player(withName: "y", andId: .player2)!) - 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)], + var pieces: [Owner : [ Animal : SpriteMoople]] = [ .player1 : [ .cat : SpriteMoople(nameImage: "catMeeple", couleur: .red), + .dog : SpriteMoople(nameImage: "dogMeeple", couleur: .red), + .leopard : SpriteMoople(nameImage: "leopardMeeple", couleur: .red), + .lion : SpriteMoople(nameImage: "lionMeeple", couleur: .red), + .rat : SpriteMoople(nameImage: "ratMeeple", couleur: .red), + .wolf : SpriteMoople(nameImage: "wolfMeeple", couleur: .red), + .elephant : SpriteMoople(nameImage: "elephantMeeple", couleur: .red), + .tiger : SpriteMoople(nameImage: "tigerMeeple", 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)]] + .player2 : [ .cat : SpriteMoople(nameImage: "catMeeple", couleur: .blue), + .dog : SpriteMoople(nameImage: "dogMeeple", couleur: .blue), + .leopard : SpriteMoople(nameImage: "leopardMeeple", couleur: .blue), + .lion : SpriteMoople(nameImage: "lionMeeple", couleur: .blue), + .rat : SpriteMoople(nameImage: "ratMeeple", couleur: .blue), + .wolf : SpriteMoople(nameImage: "wolfMeeple", couleur: .blue), + .elephant : SpriteMoople(nameImage: "elephantMeeple", couleur: .blue), + .tiger : SpriteMoople(nameImage: "tigerMeeple", couleur: .blue)]] override init(size: CGSize) { super.init(size: size) @@ -40,17 +44,20 @@ class GameScene : SKScene { for c in pieces.flatMap({ _,values in return values }) { - self.addChild(c) + self.addChild(c.self.value) } + displayBoard(board: game.board) } func displayBoard(board:Board){ - for ligne in 0...board.grid.count { - for col in 0...board.grid[ligne].count { - if cellule = board.grid[ligne][col] { - + for ligne in 0.. CGPoint { - return CGPoint(x: SpriteMoople.offset.x + SpriteMoople.direction.dx * positionTab.x, y: SpriteMoople.offset.y + SpriteMoople.direction.dy * positionTab.y) + + override var isUserInteractionEnabled: Bool { + get { + return true + } + set { + // ignore + } + } + + + override func touchesMoved(_ touches: Set, with event: UIEvent?) { + self.position = touches.first?.location(in: self) ?? CGPoint(x: 0, y: 0) + } + + override func touchesEnded(_ touches: Set, with event: UIEvent?) { + self.cellPosition = findCellPosition(pos: touches.first?.location(in: self)) } + func findCellPosition(pos:CGPoint?) -> CGPoint{ + if let pos = pos { + + print("o : \(SpriteMoople.o.x)") + print("l : \(SpriteMoople.l.dx)") + print("pos : \(pos.x)") + + print("X : \(pos.x / SpriteMoople.o.x)") + + //print("Y : \(SpriteMoople.offset.y + SpriteMoople.direction.dy / pos.y)") + + return CGPoint(x: SpriteMoople.o.x - SpriteMoople.l.dx / pos.x, y: SpriteMoople.offset.y - SpriteMoople.direction.dy / pos.y) + } else { + return self.cellPosition + } + } + required init?(coder aDecoder: NSCoder) { fatalError("init(coder:) has not been implemented") } diff --git a/NE_PAS_TOUCHER/.DS_Store b/NE_PAS_TOUCHER/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..73eb90511f3628db73f9d05bcf3ad9e1924b0862 GIT binary patch literal 6148 zcmeH~Jx&8L5QU#1MI?%(r1S|u+`tM;L5Xq!NPvc*m5@*FKHWFjB}A|L`HAOgQ5V7-?%KMK_-0wN#+p9Jjt zQ0b;EbqMuO2M50bP-hIgaqf2sYPA5hr4FHt&`Ok2qqO7|qeMC5HS=2P5E|tuelqvT zlS|%Eil5GS^>maLs!;?)U`*gJmP_mZ7xW+Q|KlR9L_h@o6@fDA*4>J)l)ZKGa@K1r t{hIz^%=L5*-ioQ-in*{>eEcP^+MLf@>JaMXjC(m%e*}z+Oa%Udz&nQA9KZko literal 0 HcmV?d00001