Seite 1 von 1
Zeitversetzte Aktionen?
Verfasst: Mittwoch 17. Februar 2010, 23:31
von Mr.Wolna
Hi,
Gibt es in Python oder Pygame eine Funktion um erst nach einer bestimmten Zeit eine Aktion auszuführen. Der Hintergrund ist folgender:
Ich wechsle jetzt zwischen den Modis und lass einen entsprechenden Text ausblenden. Ich will diesen aber per Funktion (screen.fill) nach ca. 3 Sekunden wider verschwinden lassen. Ich kenne das von anderen Sprachen (AHK), fidne aber nix passendes für Python. Bzw. hier steht was, aber er nimmt meine Argumente nicht an.
http://www.pygame.org/docs/ref/time.htm ... .set_timer
MFG,
WOLNA
Re: Zeitversetzte Aktionen?
Verfasst: Donnerstag 18. Februar 2010, 00:35
von Hyperion
Mr.Wolna hat geschrieben:..., aber er nimmt meine Argumente nicht an.
Indem was genau passiert, wenn du was genau aufrufst?
Verfasst: Donnerstag 18. Februar 2010, 04:58
von Mr.Wolna
wie ich schon schrieb: fill.screen(0,0,0)
Text wird eingeblendet > nach ca. 3 Sekunden wird der Bildschirm schwarz gefüllt.
Folge, der Text verschwindet.
Code: Alles auswählen
mod = font2.render("FULLSCREEN MODE", 1, (255, 0, 0))
screen.blit(mod, (0, 0))
fullscreen = 1
NACH 3 SEKUNDEN
#screen.fill((0,0,0))
MFG
Im Grunde sehr einfach, aber irgendwie fehlen mir bei pygame immer Funktionen. (bzw. sidn nur unter Umwegen realisierbar) Z.b. die Text Limitierung (nur ein Zeilen Text) ist auch so eine Sache an pygame...
Re: Zeitversetzte Aktionen?
Verfasst: Donnerstag 18. Februar 2010, 07:53
von /me
Mr.Wolna hat geschrieben:Bzw. hier steht was, aber er nimmt meine Argumente nicht an.
So langsam solltest du es doch wissen: Liefere bitte aussagekräftige Fehlermeldungen!
Verfasst: Donnerstag 18. Februar 2010, 10:00
von Masaru
... und Du solltest gelernt haben, dass dieses Forum eine Reihe Unterforen beschäftigt - so auch eines für
Sonstige (Pygame, PyOpenGL, ...).
Verfasst: Donnerstag 18. Februar 2010, 12:20
von Mr.Wolna
Masaru hat geschrieben:... und Du solltest gelernt haben, dass dieses Forum eine Reihe Unterforen beschäftigt - so auch eines für
Sonstige (Pygame, PyOpenGL, ...).
werde ich in Zukunft beachten. Hab es hier gepsotet, weil ich falls nötig auch eine alternative in PYTHON ohne PYGAME suche.
@ /me
TypeError, die ID muss eine Zahl(integer) sein.
Code: Alles auswählen
eventID = screen.fill((0,0,0))
pygame.time.set_timer(eventID, 1000)

Verfasst: Donnerstag 18. Februar 2010, 12:28
von Dav1d
threading.Timer, ist ein Timer ohne Pygame
Verfasst: Donnerstag 18. Februar 2010, 12:30
von cofi
Code: Alles auswählen
import pygame
from pygame.locals import *
def timerFunc():
print "Timer CallBack"
pygame.init()
pygame.time.set_timer(USEREVENT+1, 100)
while 1:
for event in pygame.event.get():
if event.type == USEREVENT+1:
timerFunc() #calling the function wheever we get timer event.
if event.type == QUIT:
break
Sagt der Kommentar der Dokumentation. Das stellt doch genau dar, was erwartet wird.
Fuer dieses Problem stellt die Sprache keine Loesung bereit, weil es ein Problem mit dem Toolkit ist, dass du hast.
Dav1d hat geschrieben:threading.Timer, ist ein Timer ohne Pygame
Nur bloed, dass das ein anderer Thread ist

Ich bezweifle, dass Pygame threadsafe ist.