Prevent Location Offset mit SpriteKit Camera Node
Ich habe bemerkt, dass diecenterOnNode:
Methode wie gezeigt,
- (void)centerOnNode:(SKNode *)node {
cameraOffset = [node.scene convertPoint:node.position fromNode:node.parent];
node.parent.position = CGPointMake(node.parent.position.x - cameraOffset.x, node.parent.position.y - cameraOffset.y);
}
hat einen großen Einfluss auf die relative Position der untergeordneten Knoten. Sobald diese Methode ausgeführt wird, scheinen die untergeordneten Knoten tatsächlich betroffen zu sein. Das folgende Bild zeigt die Logik der NO-Bewegung, wenn Sie sich nach links und leicht nach unten bewegen:
Ich habe ein hellblaues Kästchen gezeichnet, um den physischen Körper zu schätzen, auf den die Pfade anscheinend verweisen, anstatt auf den aktualisierten Frame. Die Linien und Kreise, die Sie sehen, stellen zwei Methoden dar, die ich für die Pfadfindung verwende.
Die Linie mit den Punkten sind nur Strahlentests, die ich mache, um zu sehen, ob ein Strahl entlang der grünen Linie den quadratischen Physikkörper schneidet.Der einzelne Punkt, den Sie in der oberen Ecke sehen, stammt von der Verwendung vonGameplayKit
, um einen Pfad zu konstruieren, der das schwarze Quadrat als Hindernis vermeidet.Ich kämpfe darum, zu vermeiden, dass die Neupositionierung der Kamera die Positionierung der Kinder in der Szene beeinflusst.
FYI: Ich habe die Wegfindung mit dem Bewegen des Zeichens getestet, aber NICHT mit der Kamera, und sie funktioniert einwandfrei (siehe unten).
Natürlich ist der Kameraversatz das Problem. Wenn mir jemand sagen kann, was zu tun ist, um die Kamerabewegung und die Präzision der Wegfindung beizubehalten, wäre ich sehr dankbar.