Ich erinnere mich nur schwach aus alten AMIGA-Zeiten daran,
wie so ein Scroller aufgebaut war...
Das war doch irgendwie ein Sprite mit den Text drauf,
welches nach links bewegt wurde oder?
Allerdings war der Text nicht komplett auf dem Sprite
drauf sondern wurde irgendwie immer buchstabenweise
neu draufkopiert...
Horizontaler Bitmap-Text-Scroller
Äh, ja, ich seh da keine Frage außer die Sache, ob da ein Sprite war, welches da nach links sich bewegt.
Was genau ist das Problem?
Entweder bringst du den Text direkt voll auf ein Sprite und lässt dieses scrollen oder du hast einen kompletten String und splittest den "on the fly" (
) in einen Text der nach und nach wächst (also die Buchstaben rechts hinzu kommen).
Könnte man sicher mit mid() machen, immer einen Buchstaben von Rechts mehr dazu schalten, natürlich Zeitgebunden, je nachdem wie schnell das Ding scrollen soll. Dann musst du eben immer nur den aktuellen neu hinzu gekommenen Buchstaben auf das Sprite bringen, immer an der gleichen Position. Dadurch dass das Sprite weiterläuft und wenn du das gut abpasst, fügt sich das gut ein.
Bspl.:
Ein Buchstabe ist 20 Pixel breit. Der Text braucht eine Sekunde für die 10 Pixel. Also musst du jede zwei Sekunden einen Buchstaben links neu dazu schalten und genau diesen auf das Sprite bringen.
Was genau ist das Problem?
Entweder bringst du den Text direkt voll auf ein Sprite und lässt dieses scrollen oder du hast einen kompletten String und splittest den "on the fly" (
Könnte man sicher mit mid() machen, immer einen Buchstaben von Rechts mehr dazu schalten, natürlich Zeitgebunden, je nachdem wie schnell das Ding scrollen soll. Dann musst du eben immer nur den aktuellen neu hinzu gekommenen Buchstaben auf das Sprite bringen, immer an der gleichen Position. Dadurch dass das Sprite weiterläuft und wenn du das gut abpasst, fügt sich das gut ein.
Bspl.:
Ein Buchstabe ist 20 Pixel breit. Der Text braucht eine Sekunde für die 10 Pixel. Also musst du jede zwei Sekunden einen Buchstaben links neu dazu schalten und genau diesen auf das Sprite bringen.
Du kannst das Sprite auch immer auf der Position lassen und den Text darauf scrollen lassen. Allerdings musst du dann die Buchstaben alle immer neu zeichnen was Rechenaufwand bedeutet.
Andere Möglichkeit, 2 Sprites nehmen. Sobald das erste Sprite links gegen den Rand kommt (es ist genauso groß wie der Bildschirm in der Breite) wird das zweite rechts angesetzt und fängt dort nahtlos an. Dann kann das erste Sprite gelöscht und an die Stelle rechts wieder angefügt, denn das zweite endet ja in diesem Moment wo das erste komplett versinkt auch rechts. Dann tauschst du die also immer aus und kannst dann die Methode nehmen, immer nur einen Buchstaben zu drucken.
Eventuell könntest du einen Spielraum von ein paar Pixeln lassen, damit nichts schief läuft und ein kleiner Buffer vorhanden ist, falls das Spiel zu Ruckeln beginnt und die Schritte mal größer sind und über den Rand hinaus schießen.
Andere Möglichkeit, 2 Sprites nehmen. Sobald das erste Sprite links gegen den Rand kommt (es ist genauso groß wie der Bildschirm in der Breite) wird das zweite rechts angesetzt und fängt dort nahtlos an. Dann kann das erste Sprite gelöscht und an die Stelle rechts wieder angefügt, denn das zweite endet ja in diesem Moment wo das erste komplett versinkt auch rechts. Dann tauschst du die also immer aus und kannst dann die Methode nehmen, immer nur einen Buchstaben zu drucken.
Eventuell könntest du einen Spielraum von ein paar Pixeln lassen, damit nichts schief läuft und ein kleiner Buffer vorhanden ist, falls das Spiel zu Ruckeln beginnt und die Schritte mal größer sind und über den Rand hinaus schießen.