avancement touch

pull/24/head^2
Your Name 11 months ago
parent f46e2d2628
commit bfa8323744

@ -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)*/
}
}
}

@ -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..<board.grid.count {
for col in 0..<board.grid[ligne].count {
if let piece = board.grid[ligne][col].piece {
if let element = pieces[piece.owner]![piece.animal]{
element.cellPosition = CGPoint(x: ligne, y: col)
}
}
}
}

@ -13,15 +13,16 @@ class SpriteMoople : SKNode {
static let offset = CGPoint(x: -400, y: -300 )
static let direction = CGVector(dx: 100, dy: 100)
static let o = CGPoint(x: 100, y: 300 )
static let l = CGVector(dx: -100, dy: -100)
let image:SKSpriteNode
let ellipse:SKShapeNode = SKShapeNode(circleOfRadius: 40)
var cellPosition:CGPoint = CGPoint(x: 0, y: 0) {
didSet {
//self.position = SpriteMoople.offset
//self.position.x = SpriteMoople.offset.x + SpriteMoople.direction.dx * self.cellPosition.x
//self.position.y = SpriteMoople.offset.y + SpriteMoople.direction.dy * self.cellPosition.y
self.position = calculPosition(positionTab: self.cellPosition)
self.position.x = SpriteMoople.offset.x + SpriteMoople.direction.dx * cellPosition.x
self.position.y = SpriteMoople.offset.y + SpriteMoople.direction.dy * cellPosition.y
}
}
@ -35,11 +36,43 @@ class SpriteMoople : SKNode {
self.addChild(image)
}
func calculPosition(positionTab:CGPoint) -> 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<UITouch>, with event: UIEvent?) {
self.position = touches.first?.location(in: self) ?? CGPoint(x: 0, y: 0)
}
override func touchesEnded(_ touches: Set<UITouch>, 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")
}

Binary file not shown.
Loading…
Cancel
Save