pull/26/head
enzo 10 months ago
parent 5144dfa24d
commit 8956bc2838

@ -37,21 +37,30 @@ class ArKitView : ARView {
return anchor
}
// -- Pour les mouvement -- //
func addGesture(_ pieces:[Owner : [ Animal : Entity?]]){
for piece in pieces.flatMap({ animal,values in return values })
{
if piece.self.value != nil {
self.installGestures([.all], for: piece.self.value as! Entity & HasCollision).forEach { gestureRecognizer in
gestureRecognizer.addTarget(self, action: #selector(handleGesture(_:)))
}
}
}
}
var initialTransform: Transform = Transform()
@objc private func handleGesture(_ recognizer: UIGestureRecognizer) {
guard let translationGesture = recognizer as? EntityTranslationGestureRecognizer, let entity = translationGesture.entity else { return }
switch translationGesture.state {
case .began:
self.initialTransform = entity.transform
case .ended:
entity.move(to: initialTransform, relativeTo: entity.parent, duration: 1)
default:
break
}
switch translationGesture.state {
case .began:
self.initialTransform = entity.transform
case .ended:
entity.move(to: initialTransform, relativeTo: entity.parent, duration: 1)
default:
break
}
}
//-------------------------//
}

@ -21,6 +21,7 @@ struct ArKitViewRepresentable : UIViewRepresentable {
let arView = ArKitView()
let anchor = arView.defineAnchors()
vm.setup(anchor)
arView.addGesture(vm.pieces)
return arView
}

@ -15,18 +15,9 @@ struct ContentArkit: View {
var body: some View {
VStack {
Text("toto")
/*
vm.view
.ignoresSafeArea()
.navigationBarBackButtonHidden(true)
.task {
vm
try! await vm.game.start()
}*/
ArKitViewRepresentable(try! Game(withRules: ClassicRules(), andPlayer1: RandomPlayer(withName: "Bot1", andId: .player1)!, andPlayer2: RandomPlayer(withName: "Bot2", andId: .player2)!))
}
}
}

@ -13,10 +13,8 @@ import UIKit
struct VMArkit {
static let offset = CGPoint(x: -0.458 , y: -0.3435 )
static let direction = CGVector(dx: 0.1145, dy: 0.1145)
//var msg:String = ""
static let offset = CGPoint(x: -0.458 * 0.3 , y: -0.3435 * 0.3 )
static let direction = CGVector(dx: 0.1145 * 0.3, dy: 0.1145 * 0.3)
var game:Game
@ -58,45 +56,46 @@ struct VMArkit {
// -- Crée les pieces
func generatePieces(_ anchor:AnchorEntity) {
// Position - X,Y,Z
for c in pieces.flatMap({ animal,values in return values })
for var piece in pieces.flatMap({ animal,values in return values })
{
var entity:Entity?
switch c.self.key {
switch piece.self.key {
case .cat :
entity = try? Entity.load(named: "cat")
entity = try? Entity.loadModel(named: "cat")
case .elephant :
entity = try? Entity.load(named: "elephant")
entity = try? Entity.loadModel(named: "elephant")
case .dog :
entity = try? Entity.load(named: "dog")
entity = try? Entity.loadModel(named: "dog")
case .leopard :
entity = try? Entity.load(named: "leopard")
entity = try? Entity.loadModel(named: "leopard")
case .lion :
entity = try? Entity.load(named: "lion")
entity = try? Entity.loadModel(named: "lion")
case .rat :
entity = try? Entity.load(named: "rat")
entity = try? Entity.loadModel(named: "rat")
case .tiger :
entity = try? Entity.load(named: "tiger")
entity = try? Entity.loadModel(named: "tiger")
case .wolf :
entity = try? Entity.load(named: "wolf")
entity = try? Entity.loadModel(named: "wolf")
default:
fatalError("Animal non compris")
}
if let entityNotNull = entity {
entityNotNull.scale = [0.3,0.3,0.3]
anchor.addChild(entityNotNull)
entityNotNull.position = SIMD3<Float>(0,0.02,0)
entityNotNull.generateCollisionShapes(recursive:true)
/*
self.installGestures([.all], for: entityNotNull as! Entity & HasCollision).forEach { gestureRecognizer in
gestureRecognizer.addTarget(self, action: #selector(handleGesture(_:)))}*/
print("Piece \(c.self.key) a été crée !")
piece.self.value = entityNotNull
print("Piece \(piece.self.key) a été crée !")
}
else {
print("La pièce \(c.self.key) n'a pas été crée !")
print("La pièce \(piece.self.key) n'a pas été crée !")
}
}
@ -132,7 +131,7 @@ struct VMArkit {
return CGPoint(x: posX, y: posY)
}
/*
// ------ Listener -------- //
func defineListeners(){
self.game.addGameStartedListener { board in startGame()}
@ -158,9 +157,9 @@ struct VMArkit {
//msg = "Game over !!"
}
func gameChange() { print("Game change !") }
func boardChange() {
func boardChange() {
print("Board change !")
self.displayBoard(board: self.game.board)
self.displayBoard(self.game.board)
}
func moveChose(board:Board,move:Move,player:Player) {
@ -174,7 +173,7 @@ struct VMArkit {
else { // Invalid
print("Move invalid de \(player.id)")
print("Move : \(move.description)")
self.displayBoard(board: self.game.board)
self.displayBoard(self.game.board)
}
print("------------")
}
@ -189,5 +188,5 @@ struct VMArkit {
}
// ------------------------- //
*/
}

Loading…
Cancel
Save