2 changed files with 75 additions and 1 deletions
@ -0,0 +1,72 @@ |
|||||
|
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() |
||||
Loading…
Reference in new issue