GLBasic forum

Other languages => GLBasic - de => Topic started by: Veritas on 2008-May-25

Title: "parallele" Prozesse
Post by: Veritas on 2008-May-25
Hi Leute,
je länger man schreibt desto weniger versucht man natürlich mit seinen Fragen das Forum zu belasten. Also wir Ihr wisst hatte ich ja mal gaaaanz am Anfang vor einigen Wochen gesagt ich würde gerne als Anfangsprojekt soetwas wie einen einarmigen Banditen probieren. Zugegeben anfangs hab ichs mir leichter vorgestellt. Naja, jetzt gehts um die "Animation". Man hat ja in der Regel 3 Rollen nebeneinander. SO. Mein Problem, wie kriege ich die Rollen jetzt "parallel" zum Laufen  :S. Ein Programm liest sich ja von oben nach unten. Die Prozesse gehen logisch ja nich in echt parallel. Ich dachte also machste mal ne While Schleife mit nem true Parameter =1 und nem false= 0 die dann einen Rollendurchlauf beim 1. Feld startet. Während die läuft soll dann die Zweite starten und genauso dann die Dritte. WIE mach ich das? Ich komm einfach nich drauf.
Title: Re: "parallele" Prozesse
Post by: Schranz0r on 2008-May-25
Ein Programm läuft sogesehen schon parallel  =D
Nur musst du die Zeichenreihenfolge beachten.
Was am Code als erstes steht wird auch als erstes gezeichnet, also wird alles was später kommt über das andere geklatscht.

so in etwar:

Code (glbasic) Select
anfang:
INC a,1   // erhöht a im eins
INC b,1   // erhöht b im eins


PRINT a, 10, 10
PRINT b, 10, 20

SHOWSCREEN   // Hier wird ja erst alles was geändert wurde sichtbar!
KEYWAIT
GOTO anfang



Title: Re: "parallele" Prozesse
Post by: Veritas on 2008-May-25
Also ähm =| du hast meine Frage vlt nich richtig verstanden.
Mir ist schon klar das man die "Zeichenreihenfolge" beachten muss. Aber im Bezug auf meine Frage spielt das Überblenden keine Rolle. Da ---> Die Rollen ja nicht übereinander liegen sondern nebeneinander. Was da jetzt oben liegt oder unten ist also egal, da's darauf kein Einfluss nehmen würde.

Meine Frage war: Wie mache ich es das:
3 mal die gleiche Prozedur (da 3xRollenanimation) aufegrufen werden. Also schon klar das die alle andere Ladekoordienaten haben usw. ehe hier missverständnisse entstehen.

Man Stelle sich das so vor:
- Rollenanimation für 1 Fenster. Diese Rollenanimation lässt einzelne Png's von Oben nach unten durch einen Viewport laufen. Diese Animation hat ein Anfang und ein Ende.

Meine Frage:
Wie schaffe ich es diesen Prozess "Zeitgleich" aufzurufen OHNE das erst die Prozedur für die Erste Rolle abläuft, aufhört dann die zweite, dann die dritte.

Da es ja kein echt paralelles Ablaufen von Prozeduren gibt muss die erste anlaufen und während diese anläuft gleich die nächste geladen werden OHNE das die erste erste schleife oder bis zum schluss durchläuft und sich dann die zweite usw. dranhängt.

Wer mir einen guten verschachtelungstipp gibt kriegt von mir "ein'n GOTTVERDAMMTEN Magicmarker"   :nw:*g*.
Title: Re: "parallele" Prozesse
Post by: Schranz0r on 2008-May-25
Versteh das Problem nicht

Du lässt pro durchlauf dein Bild ändern(pro rolle), weiss ja nicht ob du nen timer nutzt zum anhalten oder so, aber es spielt keine rolle welche rolle als erstes sich ändert, da pro durchlauf alles geändert wird, da brauchst du kein verschachtelnungszeug.... :noggin:
Title: Re: "parallele" Prozesse
Post by: Tiuz on 2008-May-25
Hallo Veritas,

ich vermute mal du hast eine Sub oder Funktion geschrieben (Animation einer Rolle), die bis zu ihrem Beenden den Programmablauf blockt, so das sonst nichts anderes ausgeführt werden kann?
Falls ja, müsstes du diese entweder in Teilfunktionen aufbrechen, damit du mehere hintereinander aufrufen kannst, oder eine Funktion schreiben, die sich um alle Rollen kümmert.

Grüße, Tiuz.
Title: Re: "parallele" Prozesse
Post by: BumbleBee on 2008-May-25
Sry, Versteh ich leider auch nicht was da so schwer ist. :) Ich glaub du machst das zu kompliziert.;) Du hast drei verschieden Animationen. Jetzt  startest du auf Tastendruck die erste Animation (Rolle) Nach z.B. 2 Sekunden startet die zweite Rolle. Und danach die dritte, wiederrum nach paar Sekunden.

Also zum Beispiel so:
IF Timer>=2 THEN -> Starte zweite Animation(Rolle)

Und dann halt die dritte. Das Anhalten ist ja dann wohl keine Frage mehr. Wo ist also das Problem? :)
Ich hoffe bei deinem Automaten kann man auch Geld gewinnen. Ich bräucht nämlich Kohle. ;)

Cheers