🚧 Update: SpriteMeeple move for add vm

dev_save_game
Nathan VERDIER 11 months ago
parent ff2f0be545
commit befb5e731d

@ -0,0 +1,8 @@
//
// ShowAllPlayer.swift
// DouShouQi_App
//
// Created by etudiant on 14/06/2024.
//
import Foundation

@ -10,7 +10,11 @@ import SpriteKit
import DouShouQiModel
class GameScene : SKScene {
var game: Game = try! Game(withRules: ClassicRules(), andPlayer1: RandomPlayer(withName: "Rayhan", andId: .player1)!, andPlayer2: RandomPlayer(withName: "Rémi", andId: .player2)!)
var player1: HumanPlayer = HumanPlayer(withName: "Rémi", andId: .player1)!
var player2: HumanPlayer = HumanPlayer(withName: "Rayhan", andId: .player2)!
var game: Game
let pieces: [Owner : [Animal:SpriteMeeple]] = [
.player1: [
@ -38,6 +42,7 @@ class GameScene : SKScene {
let imageBoard: SKSpriteNode = SKSpriteNode(imageNamed: AppImages.boardGame)
override init(size: CGSize) {
game = try! Game(withRules: ClassicRules(), andPlayer1: player1, andPlayer2: player2)
super.init(size: size)
imageBoard.size = size
//self.scaleMode = .aspectFit
@ -48,9 +53,11 @@ class GameScene : SKScene {
for piece in pieces.flatMap({owner, pieces in pieces.values}) {
self.addChild(piece)
//piece.setOnMove(onMove: onMeepleMove)
}
initializeBoard(game.board)
}
func initializeBoard(_ board: Board) {
@ -66,6 +73,25 @@ class GameScene : SKScene {
}
required init?(coder aDecoder: NSCoder) {
game = try! Game(withRules: ClassicRules(), andPlayer1: player1, andPlayer2: player2)
super.init(coder: aDecoder);
}
func onMeepleMove(_ start: CGPoint, _ end: CGPoint) async {
let owner = game.rules.getNextPlayer()
let player = game.players[owner]
let move = Move(of: owner, fromRow: Int(start.x), andFromColumn: Int(start.y), toRow: Int(end.x), andToColumn: Int(end.y))
print("Meeple moved")
try! await (player as! HumanPlayer).chooseMove(move)
}
public func start() async throws {
try await game.start()
}
}

Loading…
Cancel
Save