import pygame import sys import random pygame.init() SIRKA = 800 VYSKA = 600 okno = pygame.display.set_mode((SIRKA, VYSKA)) pygame.display.set_caption("Chytání jablek") # Barvy CERNA = (0, 0, 0) ZELENA = (0, 255, 0) # Hráč CERVENA = (255, 0, 0) # Jablko BILA = (255, 255, 255) # Text hodiny = pygame.time.Clock() font = pygame.font.SysFont("Arial", 36) # Hráč (košík) hrac_sirka = 100 hrac_vyska = 20 hrac_x = SIRKA // 2 - hrac_sirka // 2 hrac_y = VYSKA - 40 rychlost_hrace = 8 # Jablko jablko_velikost = 30 jablko_x = random.randint(0, SIRKA - jablko_velikost) jablko_y = -jablko_velikost rychlost_jablka = 5 skore = 0 zivoty = 3 bezime = True while bezime: for udalost in pygame.event.get(): if udalost.type == pygame.QUIT: bezime = False if zivoty > 0: # Pohyb hráče klavesy = pygame.key.get_pressed() if klavesy[pygame.K_LEFT] and hrac_x > 0: hrac_x -= rychlost_hrace if klavesy[pygame.K_RIGHT] and hrac_x < SIRKA - hrac_sirka: hrac_x += rychlost_hrace # Pohyb jablka padajícího dolů jablko_y += rychlost_jablka # Kolize (chycení jablka) # Jednoduchá kontrola obdélníků (AABB kolize) hrac_rect = pygame.Rect(hrac_x, hrac_y, hrac_sirka, hrac_vyska) jablko_rect = pygame.Rect(jablko_x, jablko_y, jablko_velikost, jablko_velikost) if hrac_rect.colliderect(jablko_rect): skore += 1 rychlost_jablka += 0.2 # Mírné zrychlování hry jablko_y = -jablko_velikost jablko_x = random.randint(0, SIRKA - jablko_velikost) # Jablko spadlo na zem elif jablko_y > VYSKA: zivoty -= 1 jablko_y = -jablko_velikost jablko_x = random.randint(0, SIRKA - jablko_velikost) # Vykreslování okno.fill(CERNA) if zivoty > 0: # Vykreslení hráče pygame.draw.rect(okno, ZELENA, (hrac_x, hrac_y, hrac_sirka, hrac_vyska)) # Vykreslení jablka pygame.draw.rect(okno, CERVENA, (jablko_x, jablko_y, jablko_velikost, jablko_velikost)) # Texty - Skóre a Životy text_skore = font.render(f"Skóre: {skore}", True, BILA) text_zivoty = font.render(f"Životy: {zivoty}", True, BILA) okno.blit(text_skore, (10, 10)) okno.blit(text_zivoty, (SIRKA - 150, 10)) else: # Konec hry text_konec = font.render(f"KONEC HRY! Tvé skóre: {skore}", True, CERVENA) okno.blit(text_konec, (SIRKA//2 - 180, VYSKA//2)) pygame.display.flip() hodiny.tick(60) pygame.quit() sys.exit()