Seite 1 von 1

Tastenkombination doppelt belegen?

Verfasst: Mittwoch 17. Februar 2010, 16:46
von Mr.Wolna
Irgendwie gibt es nur Probleme, heute. -.-

Wie kann ich eine Tastenkombination 2 mal belegen?

Folgender Code:

Code: Alles auswählen

if keyinput[pygame.K_LALT] and keyinput[pygame.K_RETURN]:    
            if modus == 0:
                fullscreen(1)
                modus = 1

        if keyinput[pygame.K_0]:
            if modus == 1:
                modus = 0
Standart ist der Modus oben auf 0. Das fullscreen() ist eine Funktion, die den Bildschirm eben zu full der window mode macht.

Wie im Code funktioniert es super, aber wie mache ich das NUR mit ALT und ENTER?

MfG,
Wolna

Verfasst: Mittwoch 17. Februar 2010, 17:11
von Hyperion
http://www.pygame.org/docs/ref/key.html ... y.get_mods

Das sollte damit zu realisieren sein.

Verfasst: Mittwoch 17. Februar 2010, 18:25
von Mr.Wolna
Sorry ich sehe nicht wie mir das helfen sollte. -.-

Verfasst: Mittwoch 17. Februar 2010, 19:45
von cofi
Ich verstehe die Frage nicht so ganz.
Was funktioniert "super"?
Willst du dass das Stueck ausgefuehrt wird, wenn LAlt + RET gedrueckt werden? Wenn ja: Alt ist ein Modifier, also sollte die Funktion dir hlfen.

Verfasst: Mittwoch 17. Februar 2010, 20:10
von Mr.Wolna
Eh nein, folgendes:

Mit diesen Script setze ich mit Alt und Enter mein Fenster auf FULLSCREEN.
Mit der Taste "0" wir das ganze wieder in den WINDOWMODUS versetzt.
MIt ALT und ENTER wieder in den FULLSCREEN und so weiter.


Ich will aber, wie man das von den meisten Applikationen kennt, alleine mit den ALT und ENTER Tasten zwischen WINDOW und FULLSCREEN wechselt.

Also wenn FULL dann WIN und wenn WIN dann FULL, habe in meiner Unwissenheit folgenden Code jetzt:

Code: Alles auswählen


     if keyinput[pygame.K_LALT] and keyinput[pygame.K_RETURN]:    
            if modus == 0:
                fullscreen(1)
                modus = 1

            if modus == 1 and keyinput[pygame.K_LALT] and keyinput[pygame.K_RETURN]:
                fullscreen(0)
                modus = 0


Das Programm sollte eigentlich wider auf die Tastenkombi warten, aber er wechselt sofort wieder auf WINDOW, was ja logisch ist da der Modus ja mit der Aktivierung auf FULL auf 1 wechselt.


Hoffe jetzt versteht ihr das Problem und was ich erreichen will.

MFG

Verfasst: Mittwoch 17. Februar 2010, 20:16
von BlackVivi
...vielleicht reicht auch einfach...

Code: Alles auswählen

     if keyinput[pygame.K_LALT] and keyinput[pygame.K_RETURN]:    
            if modus == 0: 
                fullscreen(1) 
                modus = 1 
            elif modus == 1: 
                fullscreen(0) 
                modus = 0
Aber... keine Ahnung oO''

Verfasst: Mittwoch 17. Februar 2010, 21:12
von Hyperion
Es bleibt: Du bist mit pygame überfordert, weil Du Dich nicht auf das wesentliche konzentrieren kannst: Nämlich die Programmlogik! Du musst Dir hier vor allem den Zustand merken, wie BlackVivi ja schon aufgezeigt hat.

Desweiteren: Beschreibe doch Deine Probleme besser! Alleine das hilft oft schon, selber auf den Trichter zu kommen, woran es klemmt. Du hast es ja später anhand des Beispiels recht schön beschrieben. Aber das hättest Du ja von Anfang an machen können ;-)

Verfasst: Mittwoch 17. Februar 2010, 21:39
von Mr.Wolna
Hyperion hat geschrieben:Es bleibt: Du bist mit pygame überfordert, weil Du Dich nicht auf das wesentliche konzentrieren kannst: Nämlich die Programmlogik! Du musst Dir hier vor allem den Zustand merken, wie BlackVivi ja schon aufgezeigt hat.

Da hast du Recht. Aber ich ärgere mich, wieso ich das nicht gesehen habe. NATÜRLICH kommt da ein elif hin -.- ... was sonst? *facepalm*
Hyperion hat geschrieben: Desweiteren: Beschreibe doch Deine Probleme besser! Alleine das hilft oft schon, selber auf den Trichter zu kommen, woran es klemmt. Du hast es ja später anhand des Beispiels recht schön beschrieben. Aber das hättest Du ja von Anfang an machen können ;-)
Da hast du wieder Recht. Das versuche ich auch immer, dachte ich hätte mich eigentlich klar ausgedrückt. Werde schauen das ich bei weiteren Fragen (und die werden sicher kommen^^) noch mehr beherzige.

Jedenfalls bin ich voller Zuversicht weiter Python zu erlernen.

Ah ja noch was kurzes. Tut mir Leid wenn es OT wird, aber ich weiß nicht ob ich wegen so was kurzem mal wieder ein Thread aufmachen soll.

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

Wie gesagt, mir tut der OT Leid, aber ich will nicht NOCH EINEN Thread aufmachen. Habt Nachtsicht mit mir, ich bin eben sehr lernbegierig.^^

MFG,
WOLNA

Verfasst: Mittwoch 17. Februar 2010, 22:36
von Leonidas
Mr.Wolna hat geschrieben:Ah ja noch was kurzes. Tut mir Leid wenn es OT wird, aber ich weiß nicht ob ich wegen so was kurzem mal wieder ein Thread aufmachen soll.
Ja, solltest du. Threads kosten ja nichts, oder?

Verfasst: Mittwoch 17. Februar 2010, 23:30
von Mr.Wolna
Gut Chef, dann mache ich das.

Danke. :)