Zufallswiedergabe von Bildern / Zufallswert RND transferieren

Previous topic - Next topic

Veritas

Hallo, ich bin Neuling und habe erst vor wenigen Tagen angefangen die Befehle kennenzulernen.
Ich möchte, am besten mit Tastendruck eine Zufallswiedergabe von Bildern starten.
Soll später wenn ich etwas mehr kapiere so etwas werden wie ein einarmiger Bandit.
Möchte mich deswegen stückweise Vorwärtsbewegen.
Daher setze ich erstmal ab der Zufallswiedergabe der Bilder. Dazu möchte ich erstmal den RND Befehl nutzen.

Code (glbasic) Select
LOADFONT "smalfont.png", 0
LOADSPRITE "Pics/01.png", 1
LOADSPRITE "Pics/02.png", 2
LOADSPRITE "Pics/03.png", 3
LOADSPRITE "Pics/04.png", 4
LOADSPRITE "Pics/05.png", 5
LOADSPRITE "Pics/06.png", 6
LOADSPRITE "Pics/07.png", 7
LOADSPRITE "Pics/08.png", 8
LOADSPRITE "Pics/09.png", 9

LET i=a
LET a=45
LET b=9


SETFONT 0
BLACKSCREEN
PRINT "Liberty City", 165, 40

DRAWRECT 50, 100, 200, 200, RGB(255, 102, 0)

[i]
FOR i=a TO 1=RND(b) STEP -1
DRAWSPRITE b, 50, 100 [/i]
NEXT

SHOWSCREEN
MOUSEWAIT

END
Der kursive Teil ist mein Problem. Ich möchte das der Wert, der dabei herauskommt später dann bei Drawsprite verwendet wird.
Wenn ihr euch jetzt fragt warum ich nicht einfach nur Drawsprite 1=RND(b) , 50, 100 dann kann ich das erklären. Ich möchte das es wie bei einem einarmigen Banditen, in diesem Fall jetzt 45 Runden "dreht" und dann beim letzten Wert wenn die Schleife stoppt stehen bleibt. Das nächste Problem wäre natürlich dann noch die 45 Runden sichtbar zu machen, sonst rattert er ja alles durch bis und startet dann das programm. Dazu aber später.

Danke LG Veritas :)
Tower: 2,5Ghz Quadcore/  8GB DDR2 Ram/ 1066Mhz FSB / ATI HD Radeon 4860.
Mobil:  DELL Studio XPS 16 / 2,53GHz intel Centrino 2 Duo / 4GB DDR 3 Ram/ 1066Mhz FSB/ ATI Radeon 4670 mobility

Never Argue with Idiots. They'll drag you down
to their level and beat you with experience.

HeikoJ

Hallo Veritas,

ich würde es so machen :
Code (glbasic) Select
dreh      = 45  // Anzahl der Drehungen
anz_sp = 9   // Anzahl der Sprite
warten = 1

DRAWRECT 50, 100, 200, 200, RGB(255, 102, 0)

UseAsBMP // Damit das Rechteck als Hintergurnd stehen bleibt

for i=1 to dreh

  sp = RND(anz_sp)
  DRAWSPRITE sp, 50, 100

  sleep(warten*100)
  inc(warten,1)
  // Damit entsteht der Eindruck, als wenn sich das Bild immer langsamer ändert

 Showscreen  // und nun Anzeigen

next

Mousewait
Ich hoffe das ist gewünscht und hilt Dir weiter.

Gruß Heiko

Veritas

Ja, danke das ist schon mal ne Super Idee, habs auch gleich umgesetzt, der Effekt funktioniert auch nur hat
 
Code (glbasic) Select
sleep(warten*100)
  inc(warten,1)
das mit den Klammern bei mir nicht so funktioniert und ich musste drauf verzichten. Hab 100 auch auf 7 veringert, sonst wirkt es so als würde der computer permanent hängen, tut er ja auch ^^ er pennt ja schließlich. Der Effekt ist gut, aber wirkt leider noch nicht flüssig genug.
Danke LG Veritas
Tower: 2,5Ghz Quadcore/  8GB DDR2 Ram/ 1066Mhz FSB / ATI HD Radeon 4860.
Mobil:  DELL Studio XPS 16 / 2,53GHz intel Centrino 2 Duo / 4GB DDR 3 Ram/ 1066Mhz FSB/ ATI Radeon 4670 mobility

Never Argue with Idiots. They'll drag you down
to their level and beat you with experience.