Difference between revisions of "State/pl"
Line 1: | Line 1: | ||
== Opis == | |||
W języku skryptowym LSL większość skryptów jest nieaktywna dopóki nie zostaną im dostarczone jakieś dane tudzież nastąpi wykrycie jakiejś zmiany w otoczeniu. W każdym momencie skrypt jest w jakimś stanie i będzie reagować na zdarzenia lub dane w zależności od wizji programisty. Jednakże skrypt możne zawierać dwa lub więcej stanów i reagować rożnie na zdarzenia oraz dane w zależności od stanu w jakim w danym momencie się znajduje. | |||
Stanem podstawowym jest stan default. Podczas kompilacji skryptu, zresetowania czy tez załadowania stan ten wywoływany jest domyślnie. Po wywołaniu stanu domyślnego w skrypcie mogą znajdować się instrukcje wywołujące pozostałe stany, które maja rożne ścieżki wykonywania różnych zdarzeń. | |||
Zdarzenie domyślne. | |||
<lsl> state default </lsl> | |||
Zdarzenie docelowe. | |||
<lsl> state target </lsl> | |||
State ma także zdefiniowane zdarzenia, które mogą zostać wywołane. | |||
Jest to stan wyjścia. | |||
<lsl> state_exit </lsl> | |||
Jest wywoływane po: | |||
*Po opuszczeniu zdarzenia. | |||
Jest to stan wejścia. | |||
<lsl> state_entry </lsl> | |||
Jest wywoływane po: | |||
*Po stworzeniu skryptu w obiekcie. | |||
*Kiedy zapisujemy skrypt. | |||
*Przy zresetowaniu skryptu. | |||
== Przykład == | |||
Prosty przykład użycia dwóch stanów. Pierwszy default zmienia kolor obiektu na biały, natomiast drugi zwany State off zmienia kolor na czarny. Zdarzenia są wywoływane, gdy obiekt zostanie naciśnięty. | |||
<lsl> | |||
default // początkowy stan default | |||
{ | |||
state_entry() | |||
{ | |||
llSetColor(<1.0, 1.0, 1.0>, ALL_SIDES); // Zmień kolor obiektu na biały | |||
} | |||
touch_start(integer total_number) // Po naciśnięciu na obiekt | |||
{ | |||
state off; // Idź do stanu off | |||
} | |||
} | |||
state off // Drugi stan zwany off | |||
{ | |||
state_entry() | |||
{ | |||
llSetColor(<0.0, 0.0, 0.0>, ALL_SIDES); // Zmiana koloru obiektu na czarny | |||
} | |||
touch_start(integer total_number) // Po ponownym kliknięciu wróć do stanu default | |||
{ | |||
state default; | |||
} | |||
} | |||
</lsl> |
Latest revision as of 12:43, 8 May 2012
Opis
W języku skryptowym LSL większość skryptów jest nieaktywna dopóki nie zostaną im dostarczone jakieś dane tudzież nastąpi wykrycie jakiejś zmiany w otoczeniu. W każdym momencie skrypt jest w jakimś stanie i będzie reagować na zdarzenia lub dane w zależności od wizji programisty. Jednakże skrypt możne zawierać dwa lub więcej stanów i reagować rożnie na zdarzenia oraz dane w zależności od stanu w jakim w danym momencie się znajduje.
Stanem podstawowym jest stan default. Podczas kompilacji skryptu, zresetowania czy tez załadowania stan ten wywoływany jest domyślnie. Po wywołaniu stanu domyślnego w skrypcie mogą znajdować się instrukcje wywołujące pozostałe stany, które maja rożne ścieżki wykonywania różnych zdarzeń.
Zdarzenie domyślne. <lsl> state default </lsl> Zdarzenie docelowe. <lsl> state target </lsl>
State ma także zdefiniowane zdarzenia, które mogą zostać wywołane.
Jest to stan wyjścia.
<lsl> state_exit </lsl>
Jest wywoływane po:
- Po opuszczeniu zdarzenia.
Jest to stan wejścia. <lsl> state_entry </lsl> Jest wywoływane po:
- Po stworzeniu skryptu w obiekcie.
- Kiedy zapisujemy skrypt.
- Przy zresetowaniu skryptu.
Przykład
Prosty przykład użycia dwóch stanów. Pierwszy default zmienia kolor obiektu na biały, natomiast drugi zwany State off zmienia kolor na czarny. Zdarzenia są wywoływane, gdy obiekt zostanie naciśnięty.
<lsl>
default // początkowy stan default {
state_entry() { llSetColor(<1.0, 1.0, 1.0>, ALL_SIDES); // Zmień kolor obiektu na biały } touch_start(integer total_number) // Po naciśnięciu na obiekt { state off; // Idź do stanu off }
} state off // Drugi stan zwany off {
state_entry() { llSetColor(<0.0, 0.0, 0.0>, ALL_SIDES); // Zmiana koloru obiektu na czarny } touch_start(integer total_number) // Po ponownym kliknięciu wróć do stanu default { state default; }
}
</lsl>