Seite 1 von 1

Probleme bei flüssiger Darstellung in pygame

Verfasst: Freitag 3. Februar 2023, 16:12
von Schmiertuch
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 ?

Re: Probleme bei flüssiger Darstellung in pygame

Verfasst: Freitag 3. Februar 2023, 16:46
von __deets__
Ohne deinen Code zu sehen - nein.

Re: Probleme bei flüssiger Darstellung in pygame

Verfasst: Freitag 3. Februar 2023, 17:24
von Schmiertuch
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)

Re: Probleme bei flüssiger Darstellung in pygame

Verfasst: Freitag 3. Februar 2023, 17:47
von __deets__
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?

Re: Probleme bei flüssiger Darstellung in pygame

Verfasst: Freitag 3. Februar 2023, 19:48
von __blackjack__
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.