roland
Site Admin Roland Zimek
Wersja SWiSH: Max4
Pomógł: 31 razy Wiek: 58 Dołączył: 21 Sty 2005 Posty: 424 Skąd: Opole
|
Wysłany: Sro 07 Wrz, 2005 10:41 Lekcja 20. Instrukcja warunkowa if ()
|
|
|
Do tej pory nasze skrypty musiały przebiegać liniowo, to znaczy były wykonywane po kolei jeden wiersz po drugim. Czasami zachodzi jednak konieczność pominięcia lub wykonania pewnych innych instrukcji w zależności od zaistniałej sytuacji. W ten sposób możemy utworzyć rozgałęzienie skryptu.
Gdy określony przez nas warunek zostanie spełniony, to zostaną wykonane jedne instrukcje, a w przeciwnym razie drugie.
Naszą animacją w której przećwiczymy taką instrukcję warunkową jest popularna gra „Za mało, za dużo”. Będziemy musieli zgadnąć liczbę którą wylosował komputer. Ale za nim zaczniemy, powiedzmy sobie w jaki sposób skrypt może wylosować liczbę. Posłużymy się prostą funkcją Math.randomInt(). Na przykład zapis:
Math.randomInt(10)
spowoduje wylosowanie liczby z zakresu od 0 włącznie do 9 włącznie.
Funkcja ta zawsze losuje od 0 włącznie do podanej przez nas liczby (ale bez niej) wartości całkowite. Fakt, iż losuje ona zawsze od zera, nie ogranicza nas gdy będziemy chcieli wylosować liczbę, przykładowo z zakresu od 1 do 6 (czyli symulacja rzutu kostką do gry). Możemy to zrealizować w następujący sposób:
Math.randomInt(6)+1
Oczywiście w ten sposób wylosowaną liczbę zawsze będziemy musieli podstawić pod zmienną lub wykorzystać w warunku.
Przejdźmy zatem do realizacji naszego przykładu. Utwórz pole tekstowe w którym użytkownik będzie miał możliwość wpisania liczby, nazwijmy je Liczba. Tworzymy także obiekt na którym będziemy musieli kliknąć, aby skrypt sprawdził, czy wpisaliśmy poprawną wartość, oraz pole tekstowe w którym podamy czy udało się trafić w wylosowaną liczbę (niech się nazywa Odpowiedz).
Następnie wybieramy w zakładce Outline, Scene_1 i wpisujemy następujący kod:
Kod: | onLoad () {
Losowa=Math.randomInt(101);
} |
w ten sposób zaraz po uruchomieniu animacji zostanie wylosowana liczba i podstawiona pod zmienną o nazwie Losowa.
Teraz wskazujemy obiekt na którym użytkownik będzie mógł kliknąć i przypisujemy mu skrypt:
Kod: | on (press) {
if (Number(Liczba.text)==Losowa) {
Odpowiedz.text="Zgadłeś";
}
} |
w ten sposób po kliknięciu na nim instrukcja warunkowa if () sprawdzi czy wpisana została w polu Liczba poprawna wartość. Jeżeli warunek Number(Liczba.text)==Losowa okaże się prawdziwy, to zostanie wykonane polecenie Odpowiedz.text="Zgadłeś";. Gdyby jednak została podana niepoprawna liczba to instrukcja warunkowa if () nie wykona zawartego w niej polecenia, gdyż warunek okazał się fałszywy.
Zwróć uwagę także na fakt, że sprawdzenie zostało zrealizowane przy pomocy podwójnego znaku równości (==). gdyż pojedynczy znak równości (=) służy jedynie do przypisania jednej zmiennej pod inną.
Składnia instrukcji warunkowej if () jest następująca:
if (warunek) {instrukcje}
gdzie:
• warunek – jest zapisem warunku który instrukcja sprawdza,
• instrukcje – są instrukcjami do wykonania w przypadku prawdziwego warunku.
Niestety nasz skrypt nie wyświetli żadnego komunikatu, gdy podana zostanie niewłaściwa liczba. Powinniśmy więc sprawdzić także pozostałe sytuacje:
Kod: | on (press) {
if (Number(Liczba.text)<Losowa) {
Odpowiedz.text="Za mało";
}
if (Number(Liczba.text)>Losowa) {
Odpowiedz.text="Za dużo";
}
if (Number(Liczba.text)==Losowa) {
Odpowiedz.text="Zgadłeś. Możesz zagrać ponownie";
Losowa=Math.randomInt(101);
}
} |
Dodatkowo, gdy użytkownik zgadnie liczbę, wpisane zostało polecenie umożliwiające rozpoczęcie zabawy od nowa poprzez wylosowanie nowej wartości. Możesz pobrać powyższy przykład w postaci pliku na końcu tej lekcji.
W warunkach możesz używać między innymi następujących operatorów:
== – jest równe,
< – jest mniejsze niż,
> – jest większe niż,
<= – jest mniejsze niż lub równe,
>= – jest większe niż lub równe,
<> – jest różne od
!= – jest różne od (działa identyczne jak <>)
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="400" height="200">
<param name="movie" value="http://swish.wodip.opole.pl/forum/_screen/script_zamalo_zaduzo.swf">
<param name="quality" value="high">
<embed src="http://swish.wodip.opole.pl/forum/_screen/script_zamalo_zaduzo.swf" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="400" height="200"></embed>
</object>
Spróbuj rozbudować skrypt tak, by wyświetlał informację o tym, za którym razem udało się odgadnąć liczbę. |
|