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