Probleme bei flüssiger Darstellung in pygame

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Schmiertuch
User
Beiträge: 6
Registriert: Sonntag 16. Oktober 2022, 16:18

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 ?
__deets__
User
Beiträge: 14494
Registriert: Mittwoch 14. Oktober 2015, 14:29

Ohne deinen Code zu sehen - nein.
Schmiertuch
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)
__deets__
User
Beiträge: 14494
Registriert: Mittwoch 14. Oktober 2015, 14:29

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?
Benutzeravatar
__blackjack__
User
Beiträge: 13004
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.
“Most people find the concept of programming obvious, but the doing impossible.” — Alan J. Perlis
Antworten