Einsteiger Schwierigkeiten...

Anfängerfragen zum Programmieren mit PureBasic.
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

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:

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)
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.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Antworten