Je pose cette question parce que je n'ai trouvé aucune solution pour ce genre de problèmes. En fait, le support de la carte Hex n'est pas très populaire.Spritekit Hexagonal map: détection de carreaux en fin SKAction.
Je fais un jeu avec le framework SpriteKit. J'utilise SktileMapNode avec une carte hexagonale, avec 1 ensemble de 4 groupes de tuiles. Le playernode se déplace sur chaque tuile, ce que je veux dire quand il se déplace sur des cases spécifiques, un événement peut être déclenché (print, function, Sktransition) mais pour le moment je suis bloqué sur la détection de ces tuiles.
Je configure les données utilisateur (en tant que booléen) et les applique dans le code, mais rien ne s'est produit, même avec un événement tactile sur une tuile.
extension GameScene {
func move(theXAmount:CGFloat , theYAmount:CGFloat, theAnimation:String) {
let wait:SKAction = SKAction.wait(forDuration: 0.05)
let walkAnimation:SKAction = SKAction(named: theAnimation, duration: moveSpeed)!
let moveAction:SKAction = SKAction.moveBy(x: theXAmount, y: theYAmount, duration: moveSpeed)
let group:SKAction = SKAction.group([ walkAnimation, moveAction ])
let finish:SKAction = SKAction.run {
let position = self.thePlayer.position
let column = self.galaxieMapnode.tileColumnIndex(fromPosition: position)
let row = self.galaxieMapnode.tileRowIndex(fromPosition: position)
if let tile:SKTileDefinition = self.galaxieMapnode.tileDefinition(atColumn: column, row: row) {
if let tileBoolData = tile.userData?["wormholeTile"] as? Bool {
if (tileBoolData == true) {
print("Wormhole touched")
}
}
} else {
print("different tile")
}
}
Seule la sortie "Dalles différentes" est déclenchée.
Toute aide est la bienvenue.
Lien par exemple d'image: the thing I want
J'ai écrit quelques [articles] (https://markbrownsword.com) et [exemples de projets] (https://github.com/markbrownsword?tab=repositories) sur les cartes de tuiles hexagonales dans SpriteKit. –
Merci Mark, je regarde ce Gameplaykit. Merci pour les conseils. Puis-je revenir à vous pour une autre question? –
Désolé edit: je reviens, il semble que je dois mettre en œuvre beaucoup de choses pour faire le graphique et la fonctionnalité de pathfinding et il semble que je dois reconstruire beaucoup de chose dans de nombreux fichiers que j'ai. GamePlay kit est le seul moyen de la chose que je veux faire? –