Tried to fix lags
This commit is contained in:
+22
-12
@@ -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__':
|
||||||
|
|||||||
Reference in New Issue
Block a user