Ich versuche ein kleines SpriteKitGame zu erstellen. Ich habe versucht, die Funktion zu verwenden, um ein paar Tanksprite-Knoten zu einem bestimmten Punkt zu bewegen.SKActionmove funktioniert nicht zuverlässig
Anbei unten ist das Code-Snippet.
let tankSpawn = CGPoint(x: self.size.width , y: 70);
tank.position = tankSpawn;
tank.zPosition = 3.0;
let targetPoint = CGPoint(x: -tank.size.width/2, y: tank.position.y);
let actionMove = SKAction.move(to: targetPoint, duration: TimeInterval(tankMoveDuration))
Das ist mein Ergebnis. Sie laichen an der richtigen Stelle (70 Einheiten hoch), gehen aber wie gezeigt nach unten.
Ich möchte, dass sie in einer geraden Linie gehen. Ich setze die Zielpunkte y als Konstante. Ich habe keine Ahnung, warum sie eine Grundquelle suchen.
Ich habe ähnlichen Code für Flugzeuge, die oben spawnen (die perfekt funktionieren).
let plane = SKSpriteNode(imageNamed: "SpaceShip");
let planeMoveDuration = 3.0
let planeSpawn = CGPoint(x: self.size.width , y: self.size.height/2);
plane.position = planeSpawn;
plane.zPosition = 3.0;
let actionMove = SKAction.move(to: CGPoint(x: -plane.size.width/2, y: plane.position.y), duration: TimeInterval(planeMoveDuration))
Ich habe keine Ahnung, was mein Fehler hier ist.
Ich habe versucht, die y-Koordinate des Ziels auf tank.position.y
zu ändern, aber es funktioniert nicht.
Setzen Sie einen Haltepunkt nach: Lassen Sie TargetPoint = ... Und sehen Sie, wie die X-und Y-Werte aussehen. Haben deine Sprites Physikkörper? Und achten Sie auf Tippfehler und ähnliches (vielleicht überschreiben Sie versehentlich einige Variablen) – Whirlwind
Wie schnell gehen sie runter? Fallen sie unter der Schwerkraft? Eine Sprite-Kit-Szene mit Physikkörpern wird die Schwerkraft haben und die Dinge werden fallen, wenn Sie nicht spezifische Maßnahmen ergreifen, um das zu vermeiden? –
@SteveIves, Es ist Schwerkraft. Ja. Ich habe eine Aussage tank.physicsbody hinzugefügt? .isAffectedByGravity = false. Jetzt funktioniert alles richtig. – Quicksillver