SWiSH Forum
Forum użytkowników programów SWiSH

Podstawy języka skryptowego - Lekcja 19. Reakcja animacji na klawiaturę

roland - Pon 05 Wrz, 2005 13:07
Temat postu: Lekcja 19. Reakcja animacji na klawiaturę
Określony skrypt może zostać wykonany przy okazji takiego zdarzenia, jak wciśnięcie określonego klawisza na klawiaturze. Służy do tego polecenie on (keyPress()).

Spróbujmy utworzyć skrypt pozwalający przesuwać obiekt o nazwie Prostokat w obszarze animacji, przypisując mu następujący skrypt:
Kod:
on (keyPress("<Right>")) {
    Prostokat._x += 1;
}
on (keyPress("<Left>")) {
    Prostokat._x -= 1;
}


Na jakie klawisze animacja może reagować? Mogą to być wszystkie znaki drukowalne oraz:
    • "<Space>" – spacja
    • "<Left>" – strzałka w lewo
    • "<Right>" – strzałka w prawo
    • "<Up>" – strzałka w górę
    • "<Down>" – strzałka w dół
    • "<Home>" – klawisz Home
    • "<End>" – klawisz End
    • "<PageUp>" – klawisz Page Up
    • "<PageDown>" – klawisz Page Down
    • "<Insert>" – klawisz Insert
    • "<Delete>" – klawisz Del / Delete
    • "<Backspace>" – klawisz Backspace
    • "<Tab>" – klawisz tabulatora
    • "<Enter>" – Enter
    • "<Escape>" – klawisz Esc


Rozróżniane są małe i wielkie znaki. I tak następujący skrypt:
Kod:
on (keyPress("A")) {
    Prostokat._alpha += 1;
}
on (keyPress("a")) {
    Prostokat._alpha -= 1;
}

pozwoli zmieniać przezroczystość obiektu. Wciskając wielką literę „A” zmniejszamy przezroczystość, a małą literą „a” zwiększamy przezroczystość.

Spróbuj samodzielnie przypisać określonym klawiszom skrypty pozwalające przesunąć obiekt w górę i dół, obrócić obiekt w prawo oraz lewo.

jaro88 - Nie 17 Wrz, 2006 19:39
Temat postu: Oczekuje na akceptację

roland - Pon 18 Wrz, 2006 07:17

Jak :swishmax ma reagować na klawisze opisałem właśnie pod koniec tej lekcji, natomiast jak ma reagować na ciągi znaków?
A kiedy :swishmax ma wiedzieć czy wpisując "1" ma już wykonać jakąś akcję, czy też czekać, bo być może będzie wciśnięte jeszcze jedno "1"? Należałoby wtedy wprowadzić umowny znak, po którym dopiero realizowana by była określona funkcja. Na przykład wpisujemy cały czas cyfry, a :swishmax dodaje je ciągle na końcu poprzednio zapamietanych znaków, aż zostanie naciśnięty np. "Enter" i dopiero wtedy wykonywana by była określona funkcja. Wymaga to już jednak trochę bardziej rozbudowanego kodu.


Powered by phpBB modified by Przemo © 2003 phpBB Group