diff options
| author | schererleander <leander@schererleander.de> | 2025-12-26 22:50:10 +0100 |
|---|---|---|
| committer | schererleander <leander@schererleander.de> | 2025-12-26 22:50:10 +0100 |
| commit | 3d18c9ee4d24dad3f7814e322c16b8d221ba4306 (patch) | |
| tree | ac4601e6bf136f99c2d1eed2061019be2fe0802d /Spieler.py | |
| parent | 293ef10e8b9af8060a8ce1b7c4aae33a65707f03 (diff) | |
feat(logic): use delta time for movment of sprites
Diffstat (limited to 'Spieler.py')
| -rw-r--r-- | Spieler.py | 15 |
1 files changed, 11 insertions, 4 deletions
@@ -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()
|
