Processing 3 - Uniwersytet Śląski

Transkrypt

Processing 3 - Uniwersytet Śląski
Podstawy Processingu
Diana Domańska
Uniwersytet Śląski
Animacja
Processing umożliwia tworzenie animacji z użyciem mechanizmu
podwójnego buforowania.
Animacja
Processing umożliwia tworzenie animacji z użyciem mechanizmu
podwójnego buforowania.
Żeby skorzystać z tej możliwości należy rozdzielić nasz program na
dwie funkcje.
1
2
3
4
5
6
7
8
void
{
//
}
void
{
//
}
setup()
instrukcje inicjujace
draw()
instrukcje rysujace
Ograniczenie liczby wyświetlanych klatek na sekundę (fps)
void frameRate(int fps);
Ograniczenie liczby wyświetlanych klatek na sekundę (fps)
void frameRate(int fps);
Aktualną liczbę klatek na sekundę możemy odczytać ze zmiennej
frameRate. Zaś liczbę klatek wyświetlonych od momentu
uruchomienia programu ze zmiennej frameCount.
Ograniczenie liczby wyświetlanych klatek na sekundę (fps)
void frameRate(int fps);
Aktualną liczbę klatek na sekundę możemy odczytać ze zmiennej
frameRate. Zaś liczbę klatek wyświetlonych od momentu
uruchomienia programu ze zmiennej frameCount.
Zatrzymanie wykonywania pętli animacji
void noLoop();
Ponowne wznowienie wykonywania pętli animacji
void loop();
Powiadomienie programu, że należy odrysować zawartość okna
void redraw();
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
float x = 0;
void setup()
{
size(200, 200);
frameRate(15);
background(0);
}
void draw()
{
fill(0, 36);
rect(0, 0, width, height);
fill(255, 90);
ellipse(x, x+5, 14, 14);
x += 10;
if(x > width)
{
x = 0;
background(0);
}
}
Obsługa myszki i klawiatury
Aktualne współrzędne kursora myszki można odczytać ze
zmiennych: mouseX, mouseY. Zaś poprzednie współrzędne ze
zmiennych: pmouseX, pmouseY.
Obsługa myszki i klawiatury
Aktualne współrzędne kursora myszki można odczytać ze
zmiennych: mouseX, mouseY. Zaś poprzednie współrzędne ze
zmiennych: pmouseX, pmouseY.
Do sprawdzenia czy został wciśnięty przycisk myszki służy zmienna
boolowska: mousePressed (true jeśli przycisk jest wciśnięty).
Do sprawdzenia, który przycisk został wciśnięty służy zmienna
mouseButton, która może przyjąć jedną z wartości: LEFT, RIGHT,
CENTER.
Obsługa myszki i klawiatury
Aktualne współrzędne kursora myszki można odczytać ze
zmiennych: mouseX, mouseY. Zaś poprzednie współrzędne ze
zmiennych: pmouseX, pmouseY.
Do sprawdzenia czy został wciśnięty przycisk myszki służy zmienna
boolowska: mousePressed (true jeśli przycisk jest wciśnięty).
Do sprawdzenia, który przycisk został wciśnięty służy zmienna
mouseButton, która może przyjąć jedną z wartości: LEFT, RIGHT,
CENTER.
Aby obsłużyć zdarzenia związane z myszką należy napisać własne
wersje odpowiednich funkcji.
Zdarzenie naciśnięcia klawisza myszki:
1
2
3
4
void mousePressed()
{
// instrukcje
}
Zdarzenie zwolnienia klawisza myszki:
1
2
3
4
void mouseReleased()
{
// instrukcje
}
Zdarzenie kliknięcia
1
2
3
4
void mouseClicked()
{
// instrukcje
}
Zdarzenie poruszania kursorem myszki
1
2
3
4
void mouseMoved()
{
// instrukcje
}
Zdarzenie ciągnięcia kursora myszki (ruch z naciśniętym
klawiszem)
1
2
3
4
void mouseDragged()
{
// instrukcje
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
float x = 10;
float y = 10;
void setup()
{
size(200, 200);
background(0);
smooth();
stroke(0, 255, 0);
strokeWeight(2);
}
void draw()
{
}
void mousePressed()
{
if(mouseButton == LEFT)
{
line(x, y, mouseX, mouseY);
x = mouseX; y = mouseY;
}
if(mouseButton == RIGHT)
{
x = mouseX; y = mouseY;
background(0);
}
}
Do sprawdzenie czy został naciśnięty jakikolwiek klawisz na
klawiaturze służy zmienna boolowska: keyPressed (true jeśli został
naciśnięty klawisz).
Do sprawdzenie czy został naciśnięty jakikolwiek klawisz na
klawiaturze służy zmienna boolowska: keyPressed (true jeśli został
naciśnięty klawisz).
Do sprawdzenia jaki klawisz (ASCII) został naciśnięty służy
zmienna: key. Dla klawiszy ASCII, których nie jesteśmy w stanie
wprowadzić bezpośrednio do kodu programu mamy stałe:
BACKSPACE, TAB, ENTER, RETURN, ESC, DELETE.
Do sprawdzenie czy został naciśnięty jakikolwiek klawisz na
klawiaturze służy zmienna boolowska: keyPressed (true jeśli został
naciśnięty klawisz).
Do sprawdzenia jaki klawisz (ASCII) został naciśnięty służy
zmienna: key. Dla klawiszy ASCII, których nie jesteśmy w stanie
wprowadzić bezpośrednio do kodu programu mamy stałe:
BACKSPACE, TAB, ENTER, RETURN, ESC, DELETE.
Do sprawdzenia klawiszy nie-ASCII najpierw sprawdzamy czy
zmienna key jest równa CODED, a następnie używając zmiennej
keyCode sprawdzamy, który klawisz został naciśnięty. Wartości
zmiennej keyCode są następujące: UP, DOWN, LEFT, RIGHT, ALT, CONTROL,
SHIFT.
Podobnie jak w przypadku myszki żeby obsłużyć zdarzenia związane
z klawiaturą należy napisać wersje odpowiednich funkcji.
Podobnie jak w przypadku myszki żeby obsłużyć zdarzenia związane
z klawiaturą należy napisać wersje odpowiednich funkcji.
Zdarzenie naciśnięcia klawisza
1
2
3
4
void keyPressed()
{
// instrukcje
}
Zdarzenie zwolnienia naciśniętego klawisza
1
2
3
4
void keyReleased()
{
// instrukcje
}
Zdarzenie naciśnięcia klawisza (ignorowane są klawisze
specjalne np. Ctrl, Shift, Alt)
1
2
3
4
void keyTyped()
{
// instrukcje
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
float x = 10, y = 10;
color c = color(255);
void setup()
{
size(200, 200);
}
void draw()
{
background(0);
fill(c);
ellipse(x, y, 14, 14);
}
void keyPressed()
{
if(key == CODED)
{
switch(keyCode)
{
case LEFT:
x -= 10; break;
case RIGHT:
x += 10; break;
case UP:
y -= 10; break;
case DOWN:
y += 10; break;
}
}
if(key == ’c’)
c = color(random(256), random(256), random(256));
}

Podobne dokumenty