Guten Tag Community,
ich bin gerade dabei mich mit PyGame auseinanderzusetzen und habe ein kleines Problem.
Wenn ich beispielweise ein Fenster erstelle wo sich ein Block bewegt, bewegt dieser sich nur flüssig sobald ich den Mauszeiger kontinuierlich bewege, sobald der Mauszeiger stillsteht hängt der block und bewegt sich nicht mehr flüssig. Weiß jemand eine Lösung dafür ?
Probleme bei flüssiger Darstellung in pygame
-
- User
- Beiträge: 6
- Registriert: Sonntag 16. Oktober 2022, 16:18
import pygame, sys
pygame.init()
screen = pygame.display.set_mode([600,600])
clock = pygame.time.Clock()
x = 300
y = 300
geschw = 3
breite = 40
hoehe = 80
go = True
while go:
for event in pygame.event.get():
if event.type == pygame.QUIT: sys.exit()
gedrueckt = pygame.key.get_pressed()
if gedrueckt[pygame.K_UP]:
y -= geschw
if gedrueckt[pygame.K_RIGHT]:
x += geschw
if gedrueckt[pygame.K_DOWN]:
y += geschw
if gedrueckt[pygame.K_LEFT]:
x -= geschw
screen.fill((0,0,0))
pygame.draw.rect(screen, (200,200,200), (x,y,breite,hoehe))
pygame.display.update()
clock.tick(60)
pygame.init()
screen = pygame.display.set_mode([600,600])
clock = pygame.time.Clock()
x = 300
y = 300
geschw = 3
breite = 40
hoehe = 80
go = True
while go:
for event in pygame.event.get():
if event.type == pygame.QUIT: sys.exit()
gedrueckt = pygame.key.get_pressed()
if gedrueckt[pygame.K_UP]:
y -= geschw
if gedrueckt[pygame.K_RIGHT]:
x += geschw
if gedrueckt[pygame.K_DOWN]:
y += geschw
if gedrueckt[pygame.K_LEFT]:
x -= geschw
screen.fill((0,0,0))
pygame.draw.rect(screen, (200,200,200), (x,y,breite,hoehe))
pygame.display.update()
clock.tick(60)
Bitte in Zukunft Code in die dazu gedachten Code-Tags setzen. Das ist der </>-Knopf im vollstaendigen Editor. Sonst gehen die fuer Python unabdingbaren Einrueckungen verloren.
Zu deinem Problem: ich sehe nichts in deinem Code, das ungewoehnlich waere. Und fuer mich funktioniert der auch einwandfrei. Das muss also etwas mit deiner Umgebung zu tun haben. Welches OS und welche Versionen von Python und pygame benutzt du? Worin laesst du dein Programm laufen, ueber die Konsole, oder in einer IDE?
Zu deinem Problem: ich sehe nichts in deinem Code, das ungewoehnlich waere. Und fuer mich funktioniert der auch einwandfrei. Das muss also etwas mit deiner Umgebung zu tun haben. Welches OS und welche Versionen von Python und pygame benutzt du? Worin laesst du dein Programm laufen, ueber die Konsole, oder in einer IDE?
- __blackjack__
- User
- Beiträge: 13123
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
Ein bisschen ungewöhnlich ist das mit dem `get_pressed()` schon, statt die Tastenereignisse in der ``for``-Schleife auszuwerten. So kann man Tastendrücke verlieren. Nicht so krass wie beschrieben, dass nichts geht wenn man die Maus nicht bewegt, aber es ist halt immer eine Momentaufnahme statt wirklich *jedes* Ereignis aus der Warteschlange zu berücksichtigen.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman