Je fais un jeu avec une configuration de caméra qui pourrait être comparée à celle d'Agar.io. Il peut monter, descendre, gauche et droite. Cependant, dans Agar.io, vous êtes limité à l'espace de la carte. Si vous rencontrez un côté de la carte, vous devez revenir en arrière.Swift: Enveloppe/boucle/répète les nœuds en dehors des limites de la caméra?
Cependant, dans mon jeu, je veux que l'appareil photo «enveloppe» le côté opposé de la carte.
Je ne pouvais pas trouver des exemples, donc je fait mon propre:
// This is in an SKScene
private func wrapNodes() {
let camPos = camera!.position // SKCameraNode of current scene
for node in self.children {
let nodePos = node.position
let x = camPos.x - nodePos.x
if x > spawnRect.width * 0.5 {
node.position.x = nodePos.x + spawnRect.width // spawnRect = map size
} else if x < -spawnRect.width * 0.5 {
node.position.x = nodePos.x - spawnRect.width // spawnRect = map size
}
let y = camPos.y - nodePos.y
if y > spawnRect.height * 0.5 {
node.position.y = nodePos.y + spawnRect.height // spawnRect = map size
} else if y < -spawnRect.height * 0.5 {
node.position.y = nodePos.y - spawnRect.height // spawnRect = map size
}
}
}
surprise en raison de mes terribles compétences en mathématiques, cela semble effectivement travailler.
Cependant, il y a deux problèmes avec ceci. Le premier est que je ne me fais pas confiance du tout, et je sens que j'ai dû faire une erreur quelque part. La seconde est qu'il faut beaucoup de temps pour parcourir tous les nœuds de la scène, donc j'espérais qu'il y aurait un moyen plus rapide, mais je ne peux pas en trouver un. Donc, je me demandais si quelqu'un connaissait une façon plus rapide de le faire.
Toutes les idées seraient appréciées!