tiny improvements
parent
633be6c6c0
commit
13786f52cb
|
@ -98,9 +98,9 @@ class Avocado:
|
|||
|
||||
|
||||
def hasLanded(self):
|
||||
if self.rect.bottom > self.screen_height or self.rect.top < 0:
|
||||
if self.rect.top > self.screen_height:
|
||||
self.is_still_falling = False
|
||||
print('DEBUG :: splash!')
|
||||
print('DEBUG :: splatch!')
|
||||
return True
|
||||
|
||||
|
||||
|
|
43
game.py
43
game.py
|
@ -24,6 +24,13 @@ class TheGame:
|
|||
self.timeout = 30
|
||||
self.level = 1
|
||||
self.targetScore = 400
|
||||
##############################
|
||||
# Never set below 4, else we have a high
|
||||
# probability of losing the game due to a missing color
|
||||
# Alternatively, you could edit chooseRandomColor()
|
||||
# to only work on the first multiplier colors
|
||||
self.multiplier = 4
|
||||
self.desired_fps = 60
|
||||
self.screen = pygame.display.set_mode((self.WIDTH, self.HEIGHT))
|
||||
self.colors = [BLUE, GREEN, RED, YELLOW]
|
||||
self.bg = pygame.image.load(os.path.join('img', 'lawyerCrystalBall.png'))
|
||||
|
@ -95,7 +102,7 @@ class TheGame:
|
|||
|
||||
|
||||
def gameOver(self):
|
||||
screen_width, screen_height = self.screen.get_size
|
||||
screen_width, screen_height = self.screen.get_size()
|
||||
gameOverImage = pygame.image.load("img/gameOver.png")
|
||||
gameOverText = self.bigFont.render('GAME OVER', 0, YELLOW)
|
||||
gameOverImage.blit(gameOverText, (screen_width/8, screen_height/7))
|
||||
|
@ -131,18 +138,10 @@ class TheGame:
|
|||
|
||||
|
||||
def main(self):
|
||||
desired_fps = 60
|
||||
|
||||
##############################
|
||||
# Never set below 4, else we have a high
|
||||
# probability of losing the game due to a missing color
|
||||
# Alternatively, you could edit chooseRandomColor()
|
||||
# to only work on the first multiplier colors
|
||||
multiplier = 4
|
||||
score = 0
|
||||
|
||||
# We could use this list for redrawing only this part
|
||||
# of the screen install of all of it
|
||||
# of the screen instead of all of it
|
||||
self.resetLevel()
|
||||
|
||||
# initialize the HUD class and the lawyer
|
||||
|
@ -155,19 +154,13 @@ class TheGame:
|
|||
|
||||
texts = []
|
||||
container = {'font': self.bigFont, 'screen': self.screen, 'clock': self.clock}
|
||||
# onetext = itext.Text(container, 'Huhu', 2000)
|
||||
# texts.append(onetext)
|
||||
|
||||
running = True
|
||||
while running:
|
||||
time_passed = self.clock.tick(desired_fps)
|
||||
time_passed = self.clock.tick(self.desired_fps)
|
||||
fps = self.clock.get_fps()
|
||||
screen_width, screen_height = self.screen.get_size()
|
||||
|
||||
# Redraw the background and put our lawyer back on top
|
||||
self.drawBackground()
|
||||
crystalBall.blitme()
|
||||
|
||||
# Next level?
|
||||
if score >= (self.targetScore * self.level):
|
||||
self.level += 1
|
||||
|
@ -178,7 +171,6 @@ class TheGame:
|
|||
2000
|
||||
)
|
||||
texts.append(levelText)
|
||||
# self.screen.blit(levelText, (screen_width / 3, screen_height / 2))
|
||||
self.playLevel(self.level)
|
||||
self.resetLevel()
|
||||
|
||||
|
@ -191,18 +183,21 @@ class TheGame:
|
|||
displaytime = self.timeleft
|
||||
|
||||
|
||||
# Redraw the background and put our lawyer back on top
|
||||
self.drawBackground()
|
||||
crystalBall.blitme()
|
||||
|
||||
# Check if there's any text that wants to get displayed
|
||||
for text in texts:
|
||||
text.blitme()
|
||||
texts[:] = [text for text in texts if not text.hasExpired() ]
|
||||
|
||||
|
||||
# Redraw the HUD
|
||||
the_hud.draw_hud(score, displaytime, round(fps, 2))
|
||||
|
||||
# Initialize a number of avocados, depending on the level
|
||||
avocadosInGame = len(self.movingAvocados)
|
||||
avocadosWanted = self.level * multiplier
|
||||
avocadosWanted = self.level * self.multiplier
|
||||
|
||||
if avocadosInGame < avocadosWanted:
|
||||
probability = int(1.0/(avocadosWanted - avocadosInGame) * 100)
|
||||
|
@ -210,7 +205,13 @@ class TheGame:
|
|||
avocolor = self.chooseRandomColor()
|
||||
avosize = (50, 50) # should we randomize this?
|
||||
# Spawn a new avocado
|
||||
a = avocado.Avocado(self.screen, avocolor, avosize, color, self.level)
|
||||
a = avocado.Avocado(
|
||||
self.screen,
|
||||
avocolor,
|
||||
avosize,
|
||||
color,
|
||||
self.level
|
||||
)
|
||||
self.movingAvocados.append(a)
|
||||
|
||||
# Remove avocados from the list of moving avocados if they no longer move
|
||||
|
|
|
@ -19,7 +19,7 @@ class Hud:
|
|||
self.hud.blit(self.draw_timeleft(timeleft), (self.screen_width / 2, 0))
|
||||
thefps = self.draw_fps(fps)
|
||||
fps_rect = thefps.get_rect()
|
||||
self.hud.blit(thefps, (self.screen_width - fps_rect.w, 0))
|
||||
self.hud.blit(thefps, (self.screen_width - (fps_rect.w + 5), 0))
|
||||
self.blitme()
|
||||
|
||||
def draw_score(self, score):
|
||||
|
|
Loading…
Reference in New Issue