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.
62 lines
1.5 KiB
62 lines
1.5 KiB
import pygame
|
|
import sys
|
|
|
|
pygame.init()
|
|
|
|
okno = pygame.display.set_mode((800,600))
|
|
pygame.display.set_caption("Pohyb Hráče")
|
|
|
|
CERNA = (0,0,0)
|
|
CERVENA = (255,0,0)
|
|
ZELENA = (0,255,0)
|
|
MODRA = (0,0,255)
|
|
|
|
#hodiny pro hlídání času a obnovování obrazovky
|
|
hodiny = pygame.time.Clock()
|
|
#Proměnné hráče a "nepřítele" na začínající pozici
|
|
hrac_x, hrac_y = 100,300
|
|
nepritel_x,nepritel_y= 600,300
|
|
rychlost = 5
|
|
|
|
bezime = True
|
|
while bezime:
|
|
for udalost in pygame.event.get():
|
|
if udalost.type == pygame.QUIT:
|
|
bezime = False
|
|
|
|
#OVLÁDÁNÍ
|
|
#získaní stavu všech kláves
|
|
klavesy = pygame.key.get_pressed()
|
|
|
|
#základní logika pohybu postavy
|
|
if klavesy[pygame.K_LEFT]:
|
|
hrac_x -= rychlost
|
|
if klavesy[pygame.K_RIGHT]:
|
|
hrac_x += rychlost
|
|
if klavesy[pygame.K_UP]:
|
|
hrac_y -= rychlost
|
|
if klavesy[pygame.K_DOWN]:
|
|
hrac_y += rychlost
|
|
|
|
#Pro detekci kolizí musíme vytvořit OBJEKTY typu pygame.Rect
|
|
rect_hrac =pygame.Rect(hrac_x, hrac_y, 50, 50)
|
|
rect_nepritel = pygame.Rect(nepritel_x,nepritel_y,100,100)
|
|
|
|
#Detekce kolize
|
|
doslo_ke_kolizi = rect_hrac.colliderect(rect_nepritel)
|
|
|
|
okno.fill(CERNA)
|
|
|
|
#Pokud dojde ke kolizi tak přebarvíme nepřítele na zeleno, jinak červená
|
|
barva_nepritele = ZELENA if doslo_ke_kolizi else CERVENA
|
|
|
|
pygame.draw.rect(okno,barva_nepritele,rect_nepritel)
|
|
pygame.draw.rect(okno, MODRA,rect_hrac)
|
|
|
|
pygame.display.flip()
|
|
|
|
#Omezení rychllostí hry na 60FPS
|
|
hodiny.tick(60)
|
|
|
|
pygame.quit()
|
|
sys.exit()
|