diff --git a/main.py b/main.py index 2419111..bd582e3 100644 --- a/main.py +++ b/main.py @@ -409,8 +409,10 @@ async def level_loop(): damage.fill((20, 0, 0, 30)) time_started = None won = False + dt = 1/config.BASE_FPS lose_played = False lose = pygame.mixer.Sound("assets/sounds/lose.ogg") + while state == "level": for event in pygame.event.get(): if event.type == pygame.QUIT: @@ -436,7 +438,7 @@ async def level_loop(): # LOGIC if player.run: - player.update((pygame.time.get_ticks() - time_started) / 1000) + player.update(dt) # RENDER player.draw(game) diff --git a/player.py b/player.py index af42efb..8299eae 100644 --- a/player.py +++ b/player.py @@ -84,8 +84,8 @@ def update(self, dt): if self.vel_y < config.VELOCITY_Y_DURING_DAMAGE: self.vel_y = float(config.VELOCITY_Y_DURING_DAMAGE) if not self.collide: - self.vel_y -= self.level.gravity / config.BASE_FPS - self.rect.y -= self.vel_y / config.BASE_FPS + self.vel_y -= self.level.gravity * dt / 1000 + self.rect.y -= self.vel_y * dt / 1000 if self.rect.y >= self.floor: self.rect.y = self.floor self.vel_y = 0 @@ -128,7 +128,7 @@ def update(self, dt): # move stars and delete the ones out of screen if self.run and self.level.obstacles: for index, star in enumerate(self.stars): - star[0] -= 1 + star[0] -= dt / 10 if star[0] < -5: del self.stars[index] # every time half of the stars are deleted, new ones are added