game change

dev
Your Name 10 months ago
parent ba31c54cba
commit 91fdb40618

@ -12,12 +12,8 @@ import SwiftUI
class GameScene: SKScene {
var isGameOver = false
let imageBoard: SKSpriteNode = SKSpriteNode(imageNamed: "board")
var game: Game = try! Game(withRules: ClassicRules(), andPlayer1: HumanPlayer(withName: "Bot1", andId: .player1)!, andPlayer2: RandomPlayer(withName: "Bot2", andId: .player2)!)
var game: Game // = try! Game(withRules: ClassicRules(), andPlayer1: HumanPlayer(withName: "Bot1", andId: .player1)!, andPlayer2: RandomPlayer(withName: "Bot2", andId: .player2)!)
var player1Name: String
var player1Image: Image
var player2Name: String
var player2Image: Image
var pieces: [Owner: [Animal: SpriteMoople]] = [
.player1: [.cat: SpriteMoople(nameImage: "catMeeple", couleur: .red),
@ -41,18 +37,12 @@ class GameScene: SKScene {
var deplacementPossible: [SKShapeNode] = []
required init?(coder aDecoder: NSCoder) {
self.player1Name = ""
self.player1Image = Image("profil")
self.player2Name = ""
self.player2Image = Image("profil")
self.game = try! Game(withRules: ClassicRules(), andPlayer1: RandomPlayer(withName: "Bot1", andId: .player1)!, andPlayer2: RandomPlayer(withName: "Bot2", andId: .player2)!)
super.init(coder: aDecoder)
}
override init(size: CGSize) {
self.player1Name = ""
self.player1Image = Image("profil")
self.player2Name = ""
self.player2Image = Image("profil")
init(size: CGSize,game:Game) {
self.game = game
super.init(size: size)
// -- -- //
scaleMode = .aspectFit
@ -69,29 +59,9 @@ class GameScene: SKScene {
}
displayBoard(board: game.board)
}
init(size: CGSize, player1Name: String, player1Image: Image, player2Name: String, player2Image: Image) {
self.player1Name = player1Name
self.player1Image = player1Image
self.player2Name = player2Name
self.player2Image = player2Image
super.init(size: size)
scaleMode = .aspectFit
anchorPoint = CGPoint(x: 0.5, y: 0.5)
imageBoard.zPosition = 0
self.addChild(imageBoard)
for c in pieces.flatMap({ $0.value }) {
c.value.refGameScene = self
c.value.zPosition = 2
self.addChild(c.value)
}
displayBoard(board: game.board)
}
func displayBoard(board: Board) {
for ligne in 0..<board.grid.count {

@ -11,22 +11,20 @@ import DouShouQiModel
struct GameView: View {
var player1Name: String
var player1Image: UIImage
var isPlayer1AI: Bool
var player2Name: String
var player2Image: UIImage
var isPlayer2AI: Bool
@ObservedObject var vm: VMGame
init(playerName1: String, image1: UIImage, isPlayer1AI: Bool, player2Name: String, image2: UIImage, isPlayer2AI: Bool) {
init(playerName1: String, image1: UIImage,player2Name: String, image2: UIImage, isPlayer2AI: Bool) {
self.player1Name = playerName1
self.player1Image = image1
self.isPlayer1AI = isPlayer1AI
self.player2Name = player2Name
self.player2Image = image2
self.isPlayer2AI = isPlayer2AI
self.vm = VMGame(player1Name: playerName1, player1Image: Image(uiImage: image1), isPlayer1AI: isPlayer1AI, player2Name: player2Name, player2Image: Image(uiImage: image2), isPlayer2AI: isPlayer2AI)
self.vm = VMGame(player1Name: playerName1, player2Name: player2Name, isPlayer2AI: isPlayer2AI)
}
var body: some View {

@ -12,19 +12,19 @@ class VMGame : ObservableObject {
@Published var msg: String = ""
var gameScene: GameScene
var isPlayer1AI: Bool
var isPlayer2AI: Bool
init(player1Name: String, player1Image: Image, isPlayer1AI: Bool, player2Name: String, player2Image: Image, isPlayer2AI: Bool) {
self.isPlayer1AI = isPlayer1AI
self.isPlayer2AI = isPlayer2AI
init(player1Name: String,player2Name: String, isPlayer2AI: Bool) {
let player1: Player = isPlayer1AI ? IAPlayer(withName: player1Name, andId: .player1)! : HumanPlayer(withName: player1Name, andId: .player1)!
let player2: Player = isPlayer2AI ? IAPlayer(withName: player2Name, andId: .player2)! : HumanPlayer(withName: player2Name, andId: .player2)!
self.gameScene = GameScene(size: CGSize(width: 940, height: 740), player1Name: player1Name, player1Image: player1Image, player2Name: player2Name, player2Image: player2Image)
self.gameScene.game = try! Game(withRules: ClassicRules(), andPlayer1: player1, andPlayer2: player2)
var p2:Player
if isPlayer2AI {
p2 = RandomPlayer(withName: "IA", andId: .player2)!
}
else {
p2 = HumanPlayer(withName: player2Name, andId: .player2)!
}
let game:Game = try! Game(withRules: ClassicRules(), andPlayer1: HumanPlayer(withName: player1Name, andId: .player1)!, andPlayer2: p2)
self.gameScene = GameScene(size: CGSize(width: 940, height: 740),game: game) // Ajouter game ici
defineListener()
}

@ -15,8 +15,7 @@ struct GameParametersMenuView: View, KeyboardReadable {
@State private var playerName2 = NSLocalizedString("Nom du Joueur 2", comment: "")
@State private var playerImage1: UIImage = UIImage(named: "profil")!
@State private var playerImage2: UIImage = UIImage(named: "profil")!
@State private var isPlayer1AI = false
@State private var isPlayer2AI = false
@State private var isPlayer2AI = true
@State private var keyboardHeight: CGFloat = 0
var body: some View {
@ -35,9 +34,6 @@ struct GameParametersMenuView: View, KeyboardReadable {
PickerComponent(title: "Sélectionne une IA :", selectedOption: $selectedAIOption, options: AI.allCases)
}
Toggle(isOn: $isPlayer1AI) {
Text("Joueur 1 est une IA")
}
ProfileEdit(color: Color(.red), profileWidth: 100, profileHeight: 100, defaultImage: Image("profil"), imageTextChange: "Changer l'avatar du joueur 1", playerNameKey: "Nom du Joueur 1", playerName: $playerName1, playerImage: $playerImage1)
if selectedGameType == .PvP {
@ -48,7 +44,7 @@ struct GameParametersMenuView: View, KeyboardReadable {
}
if !isKeyboardVisible {
NavigationLink(destination: GameView(playerName1: playerName1, image1: playerImage1, isPlayer1AI: isPlayer1AI, player2Name: playerName2, image2: playerImage2, isPlayer2AI: isPlayer2AI)) {
NavigationLink(destination: GameView(playerName1: playerName1, image1: playerImage1, player2Name: playerName2, image2: playerImage2, isPlayer2AI: isPlayer2AI)) {
Text("Lancer la partie")
.foregroundColor(.white)
.padding()

Loading…
Cancel
Save