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)
:wink:

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.