Verfasst: 20.09.2008 21:37
die lösung oben funktioniert zwar, aber ist etwas unüblich.
"üblicherweise" würde man zwei direction-variablen benutzen, eine für jedes sprite, also z.b. direction1 und direction2.
damit würde dann auch deine erste version funktionieren, dann ist es weniger maßgeblich, wann die werte verändert werden.
zusätzlich kann man auch für die direction-werte vor der schleife startwerte setzen, wie für die koordinaten, dann braucht man in der schleife nur noch eine stop-bedingung.
wenn es mit der schrittweite nicht richtig passt, kann man auch die starts anpassen.
ich hab deinen code von 20:57 mal dementsprechend angepasst:
zusätzlich fällt mir auf, dass du beide bilder bis 0 bewegst, sie sich also überschneiden.
wenn es wirklich nur zwei halbbilder sind, kannst du sie auch halb so breit machen,
und das zweite nur bis x=400 bewegen, das spart auch zeit und platz.
"üblicherweise" würde man zwei direction-variablen benutzen, eine für jedes sprite, also z.b. direction1 und direction2.
damit würde dann auch deine erste version funktionieren, dann ist es weniger maßgeblich, wann die werte verändert werden.
zusätzlich kann man auch für die direction-werte vor der schleife startwerte setzen, wie für die koordinaten, dann braucht man in der schleife nur noch eine stop-bedingung.
wenn es mit der schrittweite nicht richtig passt, kann man auch die starts anpassen.
ich hab deinen code von 20:57 mal dementsprechend angepasst:
Code: Alles auswählen
SpriteX1 = -801 ; durch 3 teilbar
SpriteX2 = 801
direction1 = 3
direction2 = -3
Repeat
ExamineMouse()
a = MouseX()
b = MouseY()
MouseButton(#PB_MouseButton_Left)
FlipBuffers()
ClearScreen(RGB(0, 0, 0))
DisplayTransparentSprite(#Titel1, SpriteX1, 0)
SpriteX1 + direction1
If SpriteX1 >= 0 : direction1 = 0 : EndIf
DisplayTransparentSprite(#Titel2, SpriteX2, 0)
SpriteX2 + direction2
If SpriteX2 <= 0 : direction2 = 0 : EndIf
DisplayTransparentSprite(#Cursor, MouseX(), MouseY())
Until MouseButton(#PB_MouseButton_Left)
wenn es wirklich nur zwei halbbilder sind, kannst du sie auch halb so breit machen,
und das zweite nur bis x=400 bewegen, das spart auch zeit und platz.