Hallo zusammen
Da ich selber auch so ein Malprogramm am schreiben bin wollte ich keinen neuen Post erstellen, hänge mein Problem einfach hier an.
Meine Klasse sieht (wohl nicht überraschend) sehr ähnlich aus, einfach ohne draw_line()-Funktion. Sprich bei mir zeichnets Kreise bei gedrückter Maustaste wie hier am Anfang. Wie man die hässlichen Leerstellen weg kriegt hab ich mir so vorgestellt: alle Mauspositionen während gedrückter Maustaste sollen abgefangen und in einer Liste gespeichert werden. Eine Prüfung soll ergeben welche Positionen "leer" sind und diese dann ausfüllen. Klingt in meinem Kopf schon mal gut, allerdings raucht mir der Schädel was die Umsetzung betrifft! Wie kann ich alle Mauspositionen (bei gedrückter Taste) abfangen?
Um einen Gedankeanstoss freue ich mich,
Euer MGS_Freak
Malen mit Pygame
In dem du in deiner Hauptschleife, dort wo du die events abrufst (pygame.event.get()), einfache bei dem "event.type == pygame.MOUSEBUTTONDOWN" alle events an eine Liste oder Queue per append/put anhängst. Diese kannst du dann nach dem Eventhandling auswerten.
Echt genial wie schnell man hier immer Antwort kriegt - vielen Dank!Xynon1 hat geschrieben:In dem du in deiner Hauptschleife, dort wo du die events abrufst (pygame.event.get()), einfache bei dem "event.type == pygame.MOUSEBUTTONDOWN" alle events an eine Liste oder Queue per append/put anhängst. Diese kannst du dann nach dem Eventhandling auswerten.
So, hab das mal versucht, dummerweise speichert's bei mir nur die Positionen wenn ich klicke, wenn ich die Taste halte zeichnet's zwar weiter, speichert allerdings nur die erste Position (dafür immer wieder). Was mache ich falsch?
Stimmt, sry.
Dann nimm einfach "event.type == MOUSEMOTION" und dann auf die gedrückte Taste mit "pygame.mouse.get_pressed()"* prüfen.
* Gibt dir ein Tuple mit den Statuswerten der Tasten 1, 2 und 3. Ist dieser 0, so ist die Taste nicht gedrückt.
Dann nimm einfach "event.type == MOUSEMOTION" und dann auf die gedrückte Taste mit "pygame.mouse.get_pressed()"* prüfen.
* Gibt dir ein Tuple mit den Statuswerten der Tasten 1, 2 und 3. Ist dieser 0, so ist die Taste nicht gedrückt.
null problemo, mousemotion: sehr interessant, hab's bisher nicht wirklich mitgekriegt. teste ich mal, sollte alles glatt gehen freut's mich, ansonsten muss du wohl nochmals dran glaubenXynon1 hat geschrieben:Stimmt, sry.
Dann nimm einfach "event.type == MOUSEMOTION" und dann auf die gedrückte Taste mit "pygame.mouse.get_pressed()"* prüfen.
* Gibt dir ein Tuple mit den Statuswerten der Tasten 1, 2 und 3. Ist dieser 0, so ist die Taste nicht gedrückt.