Tried to fix lags

This commit is contained in:
2021-03-27 19:25:36 +03:00
parent 0a39f6be22
commit 74b757e3bf
+22 -12
View File
@@ -7,6 +7,10 @@ Written in Python 3.X using Pygame library
import pygame import pygame
import random import random
import time
timeDiff = 0
class Floor(pygame.sprite.Sprite): class Floor(pygame.sprite.Sprite):
@@ -34,7 +38,7 @@ class Cloud(pygame.sprite.Sprite):
def update(self): def update(self):
self.rect.x -= self.speed self.rect.x -= self.speed*timeDiff
class Player(pygame.sprite.Sprite): class Player(pygame.sprite.Sprite):
@@ -66,8 +70,8 @@ class Player(pygame.sprite.Sprite):
def update(self): def update(self):
if not self.speed: self.rect.y += 1 if not self.speed: self.rect.y += 1
self.speed += 0.35 self.speed += 0.17
self.rect.y += self.speed self.rect.y += self.speed*timeDiff
class Enemy(pygame.sprite.Sprite): class Enemy(pygame.sprite.Sprite):
@@ -128,9 +132,9 @@ class Enemy(pygame.sprite.Sprite):
def update(self): def update(self):
if self.type == 1: if self.type == 1:
self.rect.x -= self.speed self.rect.x -= self.speed*timeDiff
else: else:
self.rect.x -= self.speed*2 self.rect.x -= self.speed*2*timeDiff
class Drakora(): class Drakora():
@@ -147,7 +151,7 @@ class Drakora():
self.isGameOver = False self.isGameOver = False
self.isPaused = False self.isPaused = False
self.gameSpeed = 3 self.gameSpeed = 2
self.enemyCD = 0 self.enemyCD = 0
self.enemyChance = 100.0 self.enemyChance = 100.0
@@ -161,7 +165,7 @@ class Drakora():
self.buttonsCrouch = (pygame.K_DOWN,) self.buttonsCrouch = (pygame.K_DOWN,)
self.screenSize = (800, 600) self.screenSize = (800, 600)
self.targetFps = 60 self.targetFps = 120
self.floorHeight = 50 self.floorHeight = 50
@@ -187,6 +191,8 @@ class Drakora():
self.fontScore = pygame.font.Font(font, 32) self.fontScore = pygame.font.Font(font, 32)
self.fontMessage = pygame.font.Font(font, 56) self.fontMessage = pygame.font.Font(font, 56)
self.timeOfLastFrameInNs = time.time_ns()
self.newGame() self.newGame()
@@ -262,7 +268,7 @@ class Drakora():
self.player.standup() self.player.standup()
if self.player.isJumping: if self.player.isJumping:
if self.isDownJump and self.player.hoverCount < 10: if self.isDownJump and self.player.hoverCount < 7:
self.player.speed -= 1 - self.player.speed/(15+ self.player.speed -= 1 - self.player.speed/(15+
self.player.hoverCount*3) self.player.hoverCount*3)
self.player.hoverCount += 1 self.player.hoverCount += 1
@@ -317,17 +323,21 @@ class Drakora():
self.collideCheck() self.collideCheck()
self.clock.tick(self.targetFps)
return True return True
def play(self): def play(self):
isRunning = True global timeDiff
isRunning = True
while isRunning: while isRunning:
isRunning = self.logic() timeOfNewFrameInNs = time.time_ns()
timeDiff = (timeOfNewFrameInNs-self.timeOfLastFrameInNs)/10000000
self.timeOfLastFrameInNs = timeOfNewFrameInNs
self.clock.tick(self.targetFps)
self.render() self.render()
isRunning = self.logic()
if __name__ == '__main__': if __name__ == '__main__':