# Ove programm
# - joonistab rohelise kasti
# - liigutab kasti tühiku vajutuse peale
# - kast põrkab seintest tagasi
# - kasti kiirus ja suurus muutuvad
import pygame # joonistamise moodul
import time # aja moodul
# neid funktsioone saab kasutada ilma pygame. prefiksita
from pygame import Rect, Color, draw
# muutujad
roheline = Color('green')
valge = Color('white')
must = Color('black')
sinine = Color('blue')
XMAX, YMAX = 400, 500 # ekraani suurus
x, y = 10, 10 # kasti algne asukoht
x_kiirus, y_kiirus = 2, 5 # kui kiire on meie kast
x_suurus, y_suurus = 20, 30 # kui suur on meie kast
# teeb ekraani
pygame.init()
ekraan = pygame.display.set_mode((XMAX,YMAX))
pygame.display.set_caption('Ove programm')
clock = pygame.time.Clock()
# joonistab esimese kasti
draw.rect(ekraan, sinine, Rect(x, y, x_suurus, y_suurus))
pygame.display.update()
# kasutaja järgi ootamise tsükkel
done = False
while not done:
for event in pygame.event.get():
if event.type == pygame.QUIT:
done = True
print("Lendan õhku!!")
continue
if event.type == pygame.KEYDOWN and event.key == pygame.K_SPACE:
draw.rect(ekraan, must, Rect(x, y, x_suurus, y_suurus))
# ekraani äärte ja põrkamise kontrollid
# ekraani ääres muudame kiiruse vastupidiseks
# teeme seda eraldi X ja Y kiiruste ja ülemise-alumise ääre jaoks
if y + y_kiirus + y_suurus >= YMAX:
print("oled all ääres! bööööö!!!!")
y_kiirus = - y_kiirus
if y + y_kiirus < 0:
print("oled üleval ääres! bööööö!!!!")
y_kiirus = - y_kiirus
if x + x_kiirus + x_suurus >= XMAX:
print("oled lihtsalt ääres! bööööö!!!!")
x_kiirus = - x_kiirus
if x + x_kiirus < 0:
print("oled vasakus ääres! bööööö!!!!")
x_kiirus = - x_kiirus
x = x + x_kiirus
y = y + y_kiirus
# kiirus kasvab järjest
x_kiirus = x_kiirus + (-1 if x_kiirus < 0 else 1)
y_kiirus = y_kiirus + (-1 if y_kiirus < 0 else 1)
# kast ise kasvab järjest
x_suurus = x_suurus + 1
y_suurus = y_suurus + 1
print("x =", x, " y = ", y)
draw.rect(ekraan, sinine, Rect(x, y, x_suurus, y_suurus))
pygame.display.update()
clock.tick(30)
pygame.quit()