Ich mache ein vertikales Scroll-Jump'n'Run-Spiel, und ich möchte Sprites erstellen, die sich von links nach rechts (oder von rechts nach links) bewegen und wenn sie nicht mehr auf dem Bildschirm sind , sie erscheinen auf der anderen Seite.Schleifen eines Sprites unendlich in Cocos2D
ich eine Implementierung, die meist Arbeits sind, ist das einzige Problem, dass der Sprites auf einem einzigen Boden hält in jeder Schleife näher und näher.
Ich bin wirklich nicht gut in Dinge zu beschreiben, so please check this video.
ich den folgenden Code bin mit der neuen Position der Knoten zu berechnen:
pos.x = fmodf(size.width + pos.x + this->currentDir * this->speed * delta, this->len + size.width) - size.width;
len
ist die Breite, nach der das Sprite 0
neu positioniert wird (eigentlich -size.width
, die die Breite des Sprites ist), currentDir
ist entweder 1
oder -1
und delta
ist die Zeit von der update() -Methode.
Jedes Sprite ist in seinem eigenen update() positioniert, aber ich habe bereits alles in der update() -Methode der Szene versucht, aber das Ergebnis war das gleiche.
delta ist die seit dem letzten Aufruf von update() verstrichene Zeit in Sekunden – vsakos
Hi, das habe ich verstanden. Ich glaube, dass eine Ihrer Variablen im Laufe der Zeit mehr wächst, als sie sollte, und ich dachte, es könnte das Delta sein, wenn Sie es nicht zurücksetzen. Ich schlage vor, dass Sie die Werte drucken, die Sie im Laufe der Zeit haben, um zu sehen, wo das Problem liegt. – Felipe