Mini projekat: Igra Pong u Processing Python Mode
Lekcija 7 od 14
Python Processing početna: Povratak na hub | Prethodna lekcija: Interakcija
Šta pravimo?
Pravimo jednostavnu verziju igre Pong:
- Lopta se kreće po ekranu
- Igrač kontroliše palicu pomoću miša
- Lopta se odbija od zidova i palice
Napomena:
Ovo je odlična praksa kombinovanja svega što smo do sada naučili: animacija, promenljive, detekcija sudara i interakcija.
Ovo je odlična praksa kombinovanja svega što smo do sada naučili: animacija, promenljive, detekcija sudara i interakcija.
Korak 1 — Osnovne promenljive
# Lopta
ball_x = 300
ball_y = 200
dx = 4
dy = 3
ball_size = 20
# Palica
paddle_width = 100
paddle_height = 15
# Poeni
score = 0
Savet: Možeš dodati više palica ili promeniti veličinu lopte za eksperiment.
Korak 2 — Setup funkcija
def setup():
size(600, 400)
textSize(20)
Rezultat
Kreira se prozor za igru veličine 600×400 i postavlja font za poene.
Korak 3 — Crtanje i kretanje lopte i palice
def draw():
global ball_x, ball_y, dx, dy, score
background(30)
# Lopta
fill(255)
ellipse(ball_x, ball_y, ball_size, ball_size)
# Palica prati miš
rect(mouseX - paddle_width/2, height - 40,
paddle_width, paddle_height)
# Poeni
text("Score: " + str(score), 20, 30)
# Pomeranje lopte
ball_x += dx
ball_y += dy
# Odbijanje od levog i desnog zida
if ball_x < ball_size/2 or ball_x > width - ball_size/2:
dx = -dx
# Odbijanje od gornjeg zida
if ball_y < ball_size/2:
dy = -dy
# Sudar sa palicom
if (ball_y > height - 50 and
mouseX - paddle_width/2 < ball_x < mouseX + paddle_width/2):
dy = -dy
score += 1 # Povećava poene
Rezultat
Lopta se kreće i odbija od zidova i palice. Palica prati miš. Poeni se povećavaju kada lopta pogodi palicu.
Savet: Pokušaj da promeniš brzinu lopte i širinu palice za različite nivoe težine.
Korak 4 — Game Over
Dodaj proveru kada lopta padne ispod palice:
if ball_y > height:
text("GAME OVER", width/2 - 70, height/2)
noLoop() # Zaustavlja draw()
Rezultat
Igra se zaustavlja kada lopta padne ispod palice i prikazuje GAME OVER.
Možeš koristiti
loop() za restart igre.
Korak 5 — Napredni dodaci (bonus)
- Dodaj više lopti (multi-ball)
- Dodaj boju palice koja se menja kada lopta pogodi
- Dodaj zvuk ili vizuelne efekte na sudar
- Dodaj restart dugme
mousePressed()
Mini projekat: izazov
Napravi varijantu Pong-a gde se lopta ubrzava svaki put kada pogodi palicu.
if (ball_y > height - 50 and
mouseX - paddle_width/2 < ball_x < mouseX + paddle_width/2):
dy = -dy * 1.1
dx = dx * 1.1
score += 1
Savet: Ovo dodaje “tezinu” i dinamiku igri.
Poređenje sa Java verzijom
Ista igra može se napraviti i u Java Processing-u:
Processing sa Javom — projektiLogika je identična, samo je sintaksa drugačija.
Šta smo naučili?
- Animaciju objekata
- Detekciju sudara sa palicom
- Interakciju sa mišem
- Prikaz rezultata (score)
- Osnovnu logiku mini igre Pong
Savet: Eksperimentiši sa više lopti, različitim brzinama ili dodaj AI protivnika za sledeći nivo izazova.