diff --git a/main.py b/main.py index fa00ed4..672c0a2 100644 --- a/main.py +++ b/main.py @@ -1,4 +1,5 @@ import random +import time import pygame as pg from pygame import KEYDOWN @@ -11,11 +12,37 @@ game_active = True -def game_over(): - # TODO - global game_active - game_active = False - print('You lost!') +def game_over(surface: pg.Surface, score: int) -> bool: + surface.fill(BG_RGB) + font = pg.font.SysFont("Comic Sans", 32) + button1 = font.render("Quit", True, (0, 0, 0)) + button2 = font.render("Retry", True, (0, 0, 0)) + lab1 = font.render("You Lost!", True, (255, 0, 0)) + lab2 = font.render("Score: " + str(score), True, (0, 0, 0)) + button1_rect = button1.get_rect() + button2_rect = button2.get_rect() + lab1_rect = lab1.get_rect() + lab2_rect = lab2.get_rect() + button1_rect.center = (surface.get_width()/2, surface.get_height()/2 - 25) + button2_rect.center = (surface.get_width()/2, surface.get_height()/2 + 50) + lab1_rect.center = (surface.get_width()/2, surface.get_height()/2 - 175) + lab2_rect.center = (surface.get_width()/2, surface.get_height()/2 - 100) + surface.blit(button1, button1_rect) + surface.blit(button2, button2_rect) + surface.blit(lab1, lab1_rect) + surface.blit(lab2, lab2_rect) + + run = True + while run: + for ev in pg.event.get(): + if ev.type == pg.QUIT: + pg.quit() + if ev.type == pg.MOUSEBUTTONDOWN: + if button1_rect.collidepoint(pg.mouse.get_pos()): + return False + elif button2_rect.collidepoint(pg.mouse.get_pos()): + return True + pg.display.update() def main(): @@ -25,6 +52,8 @@ def main(): pg.display.set_caption("GDSC Dino") clock = pg.time.Clock() pg.mouse.set_visible(True) + start = int(time.time_ns()) + font = pg.font.SysFont("Comic Sans", 16) player = Player(screen) obstacles = [] @@ -45,6 +74,9 @@ def main(): obstacles.append(Obstacle(screen)) next_spawn = random.randint(SPAWN_MIN, SPAWN_MAX) screen.fill(BG_RGB) + score = (int(time.time_ns()) - start) // 50000000 + text = font.render(str(score), True, (0, 0, 0)) + screen.blit(text, (500, 25)) player.show(screen) player.update_coords(dt) for obstacle in obstacles: @@ -55,7 +87,15 @@ def main(): if player.rect.collidelist( [obstacle.rect for obstacle in obstacles]) != -1: - game_over() + obstacles.clear() + player.jumping = False + player.rect.update(X_OFFSET, screen.get_height() - PLAYER_HEIGHT, + PLAYER_WIDTH, PLAYER_HEIGHT) + if game_over(screen, score): + start = int(time.time_ns()) + else: + game_active = False + next_spawn = random.randint(SPAWN_MIN, SPAWN_MAX) pg.display.update()