For Schleife unterbricht Hauptschleife - Schleifen gleichzeitig ausführen?!



  • Guten Tag,

    ich habe folgendes Problem. Bastel gerade an einer kleinen Grafikoberfläche mit Hilfe von DarkGDK herum und habe zunächst ein kleines Fenster per dbSprite() erstellt, welches sich beim schließen langsam entlädt (fadeout).

    Habe auch einen eigenen Mauscursor erstellt. Das Problem ist jetzt, wenn ich das Fenster schließe und die Maus bewege bleibt der Cursor so lange unbeweglich, bis das Fenster komplett entladen ist. (Der Cursor ist in die Hauptschleife eingebunden)

    Das liegt soweit ich weiß daran, dass jede Schleife erst einmal komplett durchlaufen wird. Aber ist es überhaupt möglich Schleifen parallel auszuführen?
    Gibt es da vielleicht sogar eine ganz andere Lösung?

    Google und SUFU hat mir leider nicht weiter geholfen. Finde immer nur die Standard Beiträge zum Thema Schleifen.

    void fadeout(int spritenumber)
    {	
    	for(int x = 255/15; x > 1; x--)
    	{
    		dbSetSpriteAlpha(spritenumber, x*15);
    		dbSync();
    	}
    
    	dbDeleteSprite(spritenumber);
    }
    
    while (LoopGDK())
    	{	
                    cur(); // zeige cursor
    
    	    if(dbSpaceKey())
    		{
    			fadeout(3);
    		}
    
    		dbSync();
    	}
    }
    

    Danke im Voraus!



  • gordonfreeman schrieb:

    Aber ist es überhaupt möglich Schleifen parallel auszuführen?

    Ja, das nennt sich Multi-Threading. Wenn du deine Cursor-Schleife in einen eigenen Thread packst, wird diese parallel zu dem anderen Kram ausgeführt.



  • Danke für die schnelle Antwort! 🙂 Ich werde gleich mal nachgoogeln!


Anmelden zum Antworten