Merge pull request #17 from IRUSlan92I/brokenFloat

I think I broke something
This commit is contained in:
Nikolai Andreichik
2021-04-06 06:27:00 -07:00
committed by GitHub
6 changed files with 51 additions and 38 deletions
+8 -5
View File
@@ -10,6 +10,10 @@ import random
class Cloud(pygame.sprite.Sprite):
def __init__(self, mainGameClass, cloudType):
pygame.sprite.Sprite.__init__(self)
self.type = cloudType
self.mainGameClass = mainGameClass
self.image = pygame.Surface((random.randint(150, 350),
random.randint(50, 150)))
@@ -18,11 +22,10 @@ class Cloud(pygame.sprite.Sprite):
self.rect = self.image.get_rect()
self.rect.center = (
mainGameClass.getScreenWidth() + self.rect.width,
mainGameClass.getScreenHeight()/2 - random.randint(100,
mainGameClass.getScreenHeight()/2-100) + 50*(2-cloudType)
self.mainGameClass.getScreenWidth() + self.rect.width,
self.mainGameClass.getScreenHeight()/2 - random.randint(100,
self.mainGameClass.getScreenHeight()/2-100) + 50*(2-cloudType)
)
self.speed = cloudType*mainGameClass.getGameSpeed() / 6
self.__doubleX = float(self.rect.x)
@@ -31,5 +34,5 @@ class Cloud(pygame.sprite.Sprite):
if (self.rect.x < -self.rect.width):
self.kill()
self.__doubleX -= self.speed
self.__doubleX -= self.type*self.mainGameClass.getGameSpeed() / 6
self.rect.x = self.__doubleX
+4 -6
View File
@@ -40,15 +40,15 @@ class Drakora():
def speedUp(self):
self.__gameSpeed *= 2
self.__gameSpeed += 1.5
def speedDown(self):
if self.__gameSpeed > 2: self.__gameSpeed /= 2
if self.__gameSpeed > 1.5: self.__gameSpeed -= 1.5
def speedReset(self):
self.__gameSpeed = 2
self.__gameSpeed = 1.5
def addScore(self, score):
@@ -78,7 +78,7 @@ class Drakora():
if self.player: self.player.kill()
self.player = Player()
self.player = Player(self)
self.players.add(self.player)
self.__score = 0
@@ -278,8 +278,6 @@ class Drakora():
def logic(self):
self.player.updateSpeed(self.__gameSpeed)
for event in pygame.event.get():
self.player.control(event)
self.endSceen.control(event)
+7 -6
View File
@@ -11,7 +11,7 @@ class Enemy(pygame.sprite.Sprite):
def __init__(self, mainGameClass):
pygame.sprite.Sprite.__init__(self)
self.thisGame = mainGameClass
self.mainGameClass = mainGameClass
self.height = (mainGameClass.getScreenHeight()
- mainGameClass.getFloorHeight())
@@ -26,9 +26,10 @@ class Enemy(pygame.sprite.Sprite):
def update(self):
if (self.rect.x < -self.rect.width):
self.kill()
self.thisGame.addScore(1)
self.mainGameClass.addScore(1)
else:
self.doubleX -= self.speed
self.rect.x = self.doubleX
self.rect.x -= self.speed
for i in self.collisionBoxes:
i.setX(self.rect.x)
for i in self.collisionBoxes:
i.setX(self.rect.x)
+7 -3
View File
@@ -42,17 +42,21 @@ class FlyingEnemy(Enemy):
self.rect.center = (mainGameClass.getScreenWidth() + self.rect.width,
self.height)
collision = CollisionBox(2, 0, self.rect.w - 28, self.rect.h - 8, self.rect.center)
self.doubleX = float(self.rect.x)
collision = CollisionBox(2, 0, self.rect.w - 28,
self.rect.h - 8, self.rect.center)
self.collisionBoxes.add(collision)
self.speed = self.thisGame.getGameSpeed()*2
self.speed = self.mainGameClass.getGameSpeed()*2
def update(self):
super().update()
self.updateCount += 1
if self.updateCount >= 22 - math.log2(self.thisGame.getGameSpeed()) * 2:
if self.updateCount >= 22 - math.log2(
self.mainGameClass.getGameSpeed()) * 2:
self.currentImage += 1
if self.currentImage >= len(FlyingEnemy.images):
self.currentImage = 0
+20 -16
View File
@@ -81,9 +81,11 @@ class Player(pygame.sprite.Sprite):
def getCollisionBoxes(self):
return self.collisionBoxes
def __init__(self):
def __init__(self, mainGameClass):
pygame.sprite.Sprite.__init__(self)
self.mainGameClass = mainGameClass
self.currentWalkImage = 0
self.currentUpImage = 0
self.currentDownImage = 0
@@ -102,7 +104,6 @@ class Player(pygame.sprite.Sprite):
self.isDownCrouch = False
self.buttonsJump = (pygame.K_UP, pygame.K_SPACE,)
self.buttonsCrouch = (pygame.K_DOWN,)
self.gameSpeed = 1
self.updateCount = 0
self.collisionBoxes = pygame.sprite.Group()
@@ -114,6 +115,8 @@ class Player(pygame.sprite.Sprite):
collision = CollisionBox(0, 35, 25, 40, self.rect.center)
self.collisionBoxes.add(collision)
self.__doubleY = float(self.rect.x)
def crouch(self):
if not self.isCrouching:
@@ -127,8 +130,6 @@ class Player(pygame.sprite.Sprite):
self.rect = self.rect.inflate(0, 32)
def updateSpeed(self, newGameSpeed):
self.gameSpeed = newGameSpeed
def control(self, event):
if event.type == pygame.KEYDOWN:
@@ -166,17 +167,19 @@ class Player(pygame.sprite.Sprite):
elif self.isCrouching:
self.standup()
gameSpeed = self.mainGameClass.getGameSpeed()
if self.isJumping:
if self.gameSpeed <= 2: maxHoverCount = 30
elif self.gameSpeed <= 4: maxHoverCount = 23
elif self.gameSpeed <= 8: maxHoverCount = 16
elif self.gameSpeed <= 16: maxHoverCount = 9
elif self.gameSpeed <= 32: maxHoverCount = 5
elif self.gameSpeed <= 64: maxHoverCount = 2
if gameSpeed <= 2: maxHoverCount = 30
elif gameSpeed <= 4: maxHoverCount = 23
elif gameSpeed <= 8: maxHoverCount = 16
elif gameSpeed <= 16: maxHoverCount = 9
elif gameSpeed <= 32: maxHoverCount = 5
elif gameSpeed <= 64: maxHoverCount = 2
else: maxHoverCount = 1
if self.isDownJump and self.hoverCount < maxHoverCount:
self.speed -= self.gameSpeed/8 * (
self.speed -= gameSpeed/8 * (
(math.cos(2*math.pi*self.hoverCount/
(2*maxHoverCount))+1)/2.5 + 0.2
)
@@ -184,14 +187,15 @@ class Player(pygame.sprite.Sprite):
else:
self.isJumping = False
else:
self.speed += 0.07 * self.gameSpeed
self.speed += 0.07 * gameSpeed
self.rect.y += self.speed
self.__doubleY += self.speed
self.rect.y = self.__doubleY
for i in self.collisionBoxes:
i.setY(self.rect.y)
for collisionBox in self.collisionBoxes:
collisionBox.setY(self.rect.y)
if self.updateCount >= 22 - math.log2(self.gameSpeed) * 2:
if self.updateCount >= 22 - math.log2(gameSpeed) * 2:
if self.isOnFloor:
if self.isCrouching:
self.currentCrouchImage += 1
+5 -2
View File
@@ -158,7 +158,10 @@ class StandingEnemy(Enemy):
self.rect.center = (mainGameClass.getScreenWidth() + self.rect.width,
self.height)
collision = CollisionBox(9, 3, self.rect.w - 18, self.rect.h - 6, self.rect.center)
self.doubleX = float(self.rect.x)
collision = CollisionBox(9, 3, self.rect.w - 18,
self.rect.h - 6, self.rect.center)
self.collisionBoxes.add(collision)
self.speed = self.thisGame.getGameSpeed()
self.speed = self.mainGameClass.getGameSpeed()