"parallele" Prozesse

Previous topic - Next topic

Veritas

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.
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.

Schranz0r

#1
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



I <3 DGArray's :D

PC:
AMD Ryzen 7 3800X 16@4.5GHz, 16GB Corsair Vengeance LPX DDR4-3200 RAM, ASUS Dual GeForce RTX™ 3060 OC Edition 12GB GDDR6, Windows 11 Pro 64Bit, MSi Tomahawk B350 Mainboard

Veritas

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*.
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.

Schranz0r

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:
I <3 DGArray's :D

PC:
AMD Ryzen 7 3800X 16@4.5GHz, 16GB Corsair Vengeance LPX DDR4-3200 RAM, ASUS Dual GeForce RTX™ 3060 OC Edition 12GB GDDR6, Windows 11 Pro 64Bit, MSi Tomahawk B350 Mainboard

Tiuz

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.

BumbleBee

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
The day will come...

CPU Intel(R) Core(TM) i5-3570k, 3.4GHz, AMD Radeon 7800 , 8 GB RAM, Windows 10 Home 64Bit