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.

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 — projekti

Logika 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.

Povezane teme