You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

94 lines
2.6 KiB

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()