Hallo, um in meinem Spiel alle Objekte im gleichen Abstand zu spawnen, will ich meine Methode, die ein Objekt erzeugt, alle 2 Sekunden wiederholen, sodass alle 2 Sekunden ein neues Objekt entsteht, welches den gleichen Abstand zum 2 Sekunden davor erzeugten und dem 2 Sekunden danach erzeugten Objekt hat. Wie mache ich sowas?
SpriteKit: Methode alle 2 Sekunden wiederholen
Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen
-
-
-
Aber kann ich nicht einfach sagen WIEDERHOLEN ALLE 2 Sekunden ?
-
Time Code
Methode muss so ausschauen wenn du daten übergeben willst
so rufst du alle 2 sekunden diese methode auf -
-
-
Okay, vielen Dank. Ich werde es später ausprobieren und euch berichten, ob es geklappt hat.
-
Natürlich kann man die Lösung mit der performSelector-Variante verwenden. Allerdings verwendet SpriteKit für den Ablauf eine eigene Schleife: https://developer.apple.com/library/ios/documentation/GraphicsAnimation/Conceptual/SpriteKit_PG/Introduction/Introduction.html#//apple_ref/doc/uid/TP40013043-CH1-SW1
und so gesehen ist eine Lösung darüber sauberer. Vielleicht solltest Du auch mal überlegen, ob es nicht sinnvoller ist, die Objekte zustands- anstatt zeitgesteuert zu erzeugen.
„Meine Komplikation hatte eine Komplikation.“ -
Das ist richtig. Bei SpriteKit sollte alles aus dem Update-Event angestoßen werden. Ich arbeite auch oft wie es sein soll. Nur finde ich etwas umständlich die Zeiten zu merken und zu verwalten.
-
Vielleicht kannst Du das ja auch auf Zustände (z. B. weniger als x Objekte auf dem Spielfeld) umstellen.„Meine Komplikation hatte eine Komplikation.“
-
Zustände abzufragen ist natürlich einfacher, passt aber leider nicht zu jedem Spielkonzept.
-
Bei mir würde es glaub ich schon passen. Ich will nur, dass Objekte in einem gleichen Abstand erzeugt werden.
-
Das ließe sich ggf. auch über die Kollisionsabfrage regeln.„Meine Komplikation hatte eine Komplikation.“
-
Also bei mir soll ein Objekt A am linken Rand erzeugt werden und sich dann mit konstanter Geschwindigkeit zum rechten Rand bewegen. Dann soll Objekt B erzeugt werden und sich sozusagen hinter Objekt A mit Abstand 20 Pixel ebenfalls zum rechten Rand bewegen und das sozusagen in einer Schleife
-
Du weißt wie weit ein Objekt vom Rand entfernt ist?
Wenn ja und der Wert unterschreitet einen Schwellerwert, erzeuge ein neues
Das zweite Objekt hat einen festen Abstand (Vektor Länge) zum ersten. -
Also dann zB
if (x-Koordinate von Sprite1 = 100px)
dann
sprite2 erzeugen -
Theoretisch stimmt das, praktisch wird's nicht immer funktionieren.
Dein Sprite muss genau die x=100.000000 haben und das trifft in den wenigsten Fällen zu, ausser du rechnest mit int für die Positionsangaben (was ich nicht glaube).
Mach es besser so, wenn dein Sprite >=100 und noch kein neuer Sprite erstellt wurde, dann erstelle einen. -
Okay danke
-
Wie spreche ich den dann die einzelnen Sprites an weil sie haben ja unterschiedliche Namen (sprite1,sprite2,...) Und Xcode muss ja wissen von welchem spiet es die Koordinaten abfragen soll
-
Du kannst die Szene nach Knoten mit bekanntem Namen durchsuchen.
BTW.: Xcode hat mit Deinem Spiel überhaupt nichts zu tun. Das ist eine IDE.„Meine Komplikation hatte eine Komplikation.“
-
Ähnliche Themen