Zeitversetzte Aktionen?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Mr.Wolna
User
Beiträge: 93
Registriert: Dienstag 6. Oktober 2009, 17:43

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
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Mr.Wolna hat geschrieben:..., aber er nimmt meine Argumente nicht an.
Indem was genau passiert, wenn du was genau aufrufst?
Mr.Wolna
User
Beiträge: 93
Registriert: Dienstag 6. Oktober 2009, 17:43

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...
Benutzeravatar
/me
User
Beiträge: 3552
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

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!
Benutzeravatar
Masaru
User
Beiträge: 425
Registriert: Mittwoch 4. August 2004, 22:17

... und Du solltest gelernt haben, dass dieses Forum eine Reihe Unterforen beschäftigt - so auch eines für Sonstige (Pygame, PyOpenGL, ...).
Mr.Wolna
User
Beiträge: 93
Registriert: Dienstag 6. Oktober 2009, 17:43

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)
:wink:
Dav1d
User
Beiträge: 1437
Registriert: Donnerstag 30. Juli 2009, 12:03
Kontaktdaten:

threading.Timer, ist ein Timer ohne Pygame
the more they change the more they stay the same
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

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