Problem mit Tasten

Hier werden alle anderen GUI-Toolkits sowie Spezial-Toolkits wie Spiele-Engines behandelt.
Antworten
Benutzeravatar
Weltbesiedler
User
Beiträge: 103
Registriert: Dienstag 2. Februar 2010, 18:44
Wohnort: Bayern

Code: Alles auswählen

import pygame, sys

screen = pygame.display.set_mode ([1000, 800])
screen.fill ([255, 255, 255])

x = 100
y = 100

color =((255 , 0 + x, 0)) 


pygame.display.flip() 


while True: 
     for event in pygame.event.get(): 
       if event.type == pygame.QUIT:
            sys.exit()
       elif event.type == pygame.KEYDOWN:
            if event.key == pygame.K_a:
                 startpos = ((200 + x, 100))
                 endpos = ((200 + y, 150))
                 x = x + 5                   
                 y = y + 1.1  
                 pygame.draw.line(screen, color, startpos, endpos, 1) 
                 pygame.display.update()

Wie kann ich es hier machen, dass, wenn ich auf "a" drauf bleibe, das erhöhen von "x" vorgesetzt wird?

P.S.

Wie funktioniert der Befehl "FULLSCREEN"?

Wie kann ich machen, das der ganze Bildschirm ausgefüllt wird?
Zuletzt geändert von Leonidas am Mittwoch 2. Juni 2010, 13:39, insgesamt 2-mal geändert.
Grund: Quelltext in Python-Code-Tags gesetzt & verschoben.
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Weltbesiedler hat geschrieben: Wie kann ich es hier machen, dass, wenn ich auf "a" drauf bleibe, das erhöhen von "x" vorgesetzt wird?
Was meinst Du mit "drauf bleiben"?
P.S.

Wie funktioniert der Befehl "FULLSCREEN"?

Wie kann ich machen, das der ganze Bildschirm ausgefüllt wird?
Für andere Fragen eher einen eigenen Thread.

Zudem: Wir haben ein Subforum für pygame ;-)

Und: Es gibt Code-Tags speziell für Python.
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Benutzeravatar
/me
User
Beiträge: 3555
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

Weltbesiedler hat geschrieben: Wie funktioniert der Befehl "FULLSCREEN"?

Wie kann ich machen, das der ganze Bildschirm ausgefüllt wird?
Ich möchte mal aus einem deiner eigenen Postings zitieren "verarschen kann ich mich auch selber. ich will von euch ein Beispiel haben!". Genau diese Erwartungshaltung legst du schon wieder an den Tag.

Fang doch bitte endlich mal damit an die Dokumentation zu lesen und mitgelieferten Beispielcode durchzuarbeiten. Ich habe gerade keine Minute gebraucht um die Lösung dieser Fullscreen-Frage in der Dokumentation zu finden. Meine Erwartungshaltung geht schon dahin, dass man sich als Fragesteller wenigstens bemühen sollte eine Lösung zu finden, aber da dir die Frage anscheinend nicht einmal wichtig genug war, dass du sie im passenden Unterforum gestellt hättest, kann ich bei dir wohl nicht von echtem Interesse ausgehen. Meine Motivation für Hilfe sieht folglich entsprechend mau aus.
Benutzeravatar
jonas
User
Beiträge: 156
Registriert: Dienstag 9. September 2008, 21:03

Code: Alles auswählen

pygame.key.set_repeat(1, 30)
Vllt. hilft dir das?
Lg, Jonas :wink:
Benutzeravatar
Weltbesiedler
User
Beiträge: 103
Registriert: Dienstag 2. Februar 2010, 18:44
Wohnort: Bayern

@ jonas: Nein, sry aber das funkioniert nicht.

@Hyperion
Was meinst Du mit "drauf bleiben"?
Ich meine, wenn ich z.B. programmiert habe, dass, wenn ich die Pfeiltaste nach oben drücke, ein Kreis gezeichnet wird.

Wenn ich dann nochmal draufdrücke zeichnet er einen Kreis mit veränderten Radius.

Leider muss ich dann immer wieder von der Taste heruntergehen und wieder drauf klicken, damit wieder ein Kreis gezeichnet wird.

Ich möchte es nun so haben, dass, wenn ich auf der Pfeiltaste nach oben drauf bleibe, automatisch ein Kreis immer und immer wieder gezeichnet wird, ohne das ich von der Pfeiltaste herunter gehen muss.
dannemann
User
Beiträge: 18
Registriert: Samstag 6. September 2008, 17:29

Jo,

Hab mal dein Programm hergenommen und mal etwas umgeändert:

Code: Alles auswählen

import pygame, sys
from pygame import *
pygame.init()

#Aufloesung musst du noch an deinem Bildschirm anpassen
#so funktioniert FULLSCREEN
screen = pygame.display.set_mode ([800, 600],FULLSCREEN)
screen.fill ([255, 255, 255])

def main():
     a=0
     x = 100
     y = 100
     color =((255 , 0 + x, 0))
     
     while True:
          #screen.fill ([255, 255, 255])
          for event in pygame.event.get():
            if event.type == pygame.QUIT:
                 sys.exit()
            elif event.type == pygame.KEYDOWN:
                 if event.key == pygame.K_ESCAPE:
                      sys.exit()
                 if event.key == pygame.K_a:
                      a=1
            elif event.type == pygame.KEYUP:
                 if event.key == pygame.K_a:
                      a=0
          if a:#Verwende Variablen
            x = x + 5                  
            y = y + 1.1

          startpos = ((200 + x, 100))
          endpos = ((200 + y, 150))

          pygame.draw.line(screen, color, startpos, endpos, 1)

          pygame.display.update()

if __name__ == "__main__":
    main()
Hoffe ich konnte dir weiterhelfen,

Danne
Wer Schmetterlinge lachen hört der weis wie Wolken schmecken
Antworten