From 3d18c9ee4d24dad3f7814e322c16b8d221ba4306 Mon Sep 17 00:00:00 2001 From: schererleander Date: Fri, 26 Dec 2025 22:50:10 +0100 Subject: feat(logic): use delta time for movment of sprites --- Spieler.py | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) (limited to 'Spieler.py') diff --git a/Spieler.py b/Spieler.py index 0c2f362..e365970 100644 --- a/Spieler.py +++ b/Spieler.py @@ -8,8 +8,11 @@ class Spieler(pygame.sprite.Sprite): self.rect = self.image.get_rect() self.rect.center = position + self.__pos_x = float(self.rect.x) + self.__leben = 3 - self.__geschwindigkeit = 8 + # pixels/second (old: 8 px/frame @ 60 FPS) + self.__geschwindigkeit = 480.0 self.__laserCoolDown = 300 self.__zeitVonLetzenSchuss = 0 @@ -20,18 +23,22 @@ class Spieler(pygame.sprite.Sprite): def getLeben(self) -> int: return self.__leben - def bewegen(self): + def bewegen(self, dt: float): keys = pygame.key.get_pressed() if keys[pygame.K_LEFT]: - self.rect.x -= self.__geschwindigkeit + self.__pos_x -= self.__geschwindigkeit * dt if keys[pygame.K_RIGHT]: - self.rect.x += self.__geschwindigkeit + self.__pos_x += self.__geschwindigkeit * dt + + self.rect.x = int(round(self.__pos_x)) def einschraenken(self, screenLaenge): if self.rect.left <= 0: self.rect.x = 0 if self.rect.right >= screenLaenge: self.rect.right = screenLaenge + + self.__pos_x = float(self.rect.x) def schuss(self): keys = pygame.key.get_pressed() -- cgit v1.3.1