Quote from: amarliani on 2009-Jan-19
Also, irgendwie steh ich gerade massiv auf dem Schlauch. Mein Problem:
Ich hab eine Reihe von (dummerweise unterschiedlich breiten) Sprites, die wie Wagen eines Zuges hintereinandergehängt werden sollen. Das Ganze soll dann am rechten Schirmrand "reinfahren", sprich lansam auftauchen, über den Schirm scrollen und dann links wieder verschwinden.
Nur: Wenn die Sprite-Kette z.B. 800px lang ist und ich 1024px Breite habe, müßte ich ja irgendwann anfangen, bei sag mal -200px zu zeichen, um den optischen Effekt, dass das Ganze links verschwindet, hinzukriegen. Geht das eigentlich? Bei mir hakt die Darstellung dann nämlich. Oder hat wer ne bessere Idee? Die naheliegende Idee, den Teil, der links raus ist, gar nicht darzustellen, ist schwer, weil wie gesagt die eigentlichen Sprites unterschiedlich breit sind.
Inwiefern hakt die Darstellung?
Ich hab das im Prinzip genauso bei mir programmiert. Und eigentlich hakt nichts..
Alle Gegner sind Types, bei denen ich die SizeX (Größe X) und SizeY (Größe Y) als Wert drin habe, und ich frage dann auch in der foreach Schleife immer ab, wenn ausserhalb negativer Size-X-größe (z.B. für negative x-Werte (raus aus linkem Schirm)), dann lösche Gegner..
Code (glbasic) Select
IF bug.x<-bug.sizex THEN DELETE bug
Im Beispiel ist bug.x der x-Wert des Gegners, bug.sizex ist die Größe -> d.h. bei einer Spritegröße von 125, fragt er in der IF-Schleife ob der aktuelle-X-Wert kleiner ist als -125