Interakcija sa mišem i tastaturom u Processing Python Mode
Python Processing početna: Povratak na hub | Prethodna lekcija: Animacija i promenljive
Zašto je interakcija važna?
Do sada smo crtali i animirali objekte. Sada učimo kako da reagujemo na:
- poziciju miša
- klik miša
- pritiskanje tastera
Ovo je osnova za pravljenje igara i interaktivnih projekata.
Pozicija miša — mouseX i mouseY
def setup():
size(600, 400)
def draw():
background(240)
ellipse(mouseX, mouseY, 40, 40)
mouseX i mouseY su ugrađene promenljive koje prate poziciju kursora.
Detekcija klika — mousePressed
def setup():
size(600, 400)
def draw():
background(240)
if mousePressed:
fill(255, 0, 0)
else:
fill(0, 150, 255)
ellipse(300, 200, 120, 120)
mousePressed je logička promenljiva (True/False).
Funkcija mousePressed()
Možemo definisati posebnu funkciju koja se poziva kada korisnik klikne:
def mousePressed():
print("Klik na poziciji:", mouseX, mouseY)
-
mousePressed → stanje (da li je dugme pritisnuto)
- mousePressed() → događaj (klik se desio)
Primer: klik dodaje krug
krugovi = []
def setup():
size(600, 400)
def draw():
background(240)
for k in krugovi:
ellipse(k[0], k[1], 30, 30)
def mousePressed():
krugovi.append((mouseX, mouseY))
Interakcija sa tastaturom — key i keyPressed()
x = 300
def setup():
size(600, 400)
def draw():
global x
background(240)
ellipse(x, 200, 50, 50)
def keyPressed():
global x
if key == 'a':
x -= 10
if key == 'd':
x += 10
Koristimo:
key— koji taster je pritisnutkeyPressed()— funkcija koja se aktivira
keyCode
Napredno: držanje tastera
def draw():
global x
background(240)
if keyPressed:
if key == 'a':
x -= 3
if key == 'd':
x += 3
ellipse(x, 200, 50, 50)
Ovde se objekat pomera dok držimo taster.
Mini projekat: interaktivna scena
- lopta prati miš
- klik menja boju
- tasteri pomeraju drugi objekat
Mini projekat (napredniji): klik menja brzinu
dx = 2
def mousePressed():
global dx
dx *= -1 # menja smer kretanja
Klik može menjati ponašanje objekta — ovo je osnova za igre.
Poređenje sa Java verzijom
Isti principi važe i u Java Processing-u:
Processing sa Javom — interakcija
Sledeća lekcija
Mini projekat: osnove igre Pong →