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.
72 lines
1.8 KiB
72 lines
1.8 KiB
import pygame
|
|
import random
|
|
import sys
|
|
|
|
pygame.init()
|
|
|
|
SIRKA = 800
|
|
VYSKA = 600
|
|
okno = pygame.display.set_mode((SIRKA,VYSKA))
|
|
pygame.display.set_caption("Kolize")
|
|
|
|
|
|
CERNA = (0,0,0)
|
|
CERVENA = (255,0,0)
|
|
ZELENA = (0,255,0)
|
|
MODRA = (0,0,255)
|
|
|
|
hodiny = pygame.time.Clock()
|
|
|
|
#proměná hráče
|
|
hrac_x = 400
|
|
hrac_y = 300
|
|
hrac_sirka = 50
|
|
hrac_vyska = 50
|
|
rychlost = 5
|
|
|
|
# proměnná "nepřítele"
|
|
nepritel_x, nepritel_y = 600, 300
|
|
nepritel_sirka, nepritel_vyska = 100, 100
|
|
|
|
bezime = True
|
|
while bezime:
|
|
for udalost in pygame.event.get():
|
|
if udalost.type == pygame.QUIT:
|
|
bezime = False
|
|
|
|
# if "OneLine"
|
|
klavesy = pygame.key.get_pressed()
|
|
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
|
|
|
|
if hrac_x < 0 : hrac_x = 0
|
|
if hrac_y < 0 : hrac_y = 0
|
|
if hrac_x > SIRKA - hrac_sirka: hrac_x = SIRKA - hrac_sirka
|
|
if hrac_y > VYSKA - hrac_vyska: hrac_y = VYSKA - hrac_vyska
|
|
|
|
#Pro detekci kolizi musíme vytvořit objekty typu pygame.Rect
|
|
rect_hrac = pygame.Rect(hrac_x,hrac_y,hrac_sirka,hrac_vyska)
|
|
rect_nepritel = pygame.Rect(nepritel_x,nepritel_y,nepritel_sirka,nepritel_vyska)
|
|
|
|
#DETECTE KOLIZE -> dotíká se hráč "nepřítele"?
|
|
doslo_ke_kolizi = rect_hrac.colliderect(rect_nepritel)
|
|
|
|
#Pokud dojde ke kolizi, "nepřitel" změni barvu na zelnou, jinak červená
|
|
if doslo_ke_kolizi:
|
|
barva_nepritele = ZELENA
|
|
else:
|
|
barva_nepritele = CERVENA
|
|
|
|
okno.fill(CERNA)
|
|
|
|
#Vykreslíme obdelníky za pomocí podmínek a nových OBJKETU rect_...
|
|
pygame.draw.rect(okno,MODRA, rect_hrac)
|
|
pygame.draw.rect(okno, barva_nepritele, rect_nepritel)
|
|
|
|
pygame.display.flip()
|
|
hodiny.tick(60)
|
|
|
|
pygame.quit()
|
|
sys.exit()
|
|
|