Kolejna animacja! Tym razem po ekranie lata piłka.
Wiecie, dlaczego.
Mamy zmienną „x” określającą pozycję piłki,
zmienną „speed”, która mówi o prędkości
i znajomą pętlę rysowania. Za każdym razem robimy tło,
wybieramy kolory i rysujemy elipsę w „x”.
Zawsze zamieniamy „x” na starą wartość „x”
plus zmienną „speed”.
Jeśli zmniejszę „speed”,
wcisnę „restart”, by piłka wróciła...
Porusza się wolniej.
Przy wartości ujemnej będzie się cofać,
a przy zerze się zatrzyma.
Przy każdej prędkości niezerowej
piłka w końcu zniknie z ekranu.
Mogę ją odzyskać, wciskając „restart”,
ale to męczy.
Restartujesz, restartujesz...
A może tak? Gdy piłka dociera do prawej krawędzi ekranu,
zamiast zniknąć, niech zawróci.
Wiem, jak to zrobić. Wystarczy, że „speed” zyska wartość -5.
Przy prędkości ujemnej piłka będzie się poruszać wstecz.
Jest jednak problem.
Prędkość chcę zmieniać tylko wtedy, gdy piłka dotrze do prawej krawędzi.
Już to mówiłam.
Chcę zmienić prędkość, jeśli piłka dotrze do prawej krawędzi.
Potrzebna jest instrukcja warunkowa.
Do tej pory komputer wykonywał polecenia bez względu na wszystko.
Teraz mogę powiedzieć:
„Uruchom ten program, ale w konkretnych okolicznościach.
Zmień prędkość piłki, jeśli dotrze ona do krawędzi”.
Tak to wygląda w programie. Wpisujemy „if”,
nawiasy okrągłe i klamry.
W nawiasie umieszczamy warunek.
W klamrach - program do uruchomienia.
Jest tak: „Jeśli zachodzi ta sytuacja,
uruchom program. Inaczej - nie trudź się”.
Tu warunkiem jest dotarcie piłki do prawej krawędzi.
Skąd mamy wiedzieć, czy to się stało?
Zmienna „x” mówi, gdzie jest piłka.
I wiem, że krawędź pola znajduje się w pozycji 400.
Zatem zobaczmy.
Gdy „x” jest większe od 400,
to wiemy, że piłka wyleciała poza krawędź.
Zobaczmy, jak to działa. W programie
tylko zmienimy prędkość. Na -5.
Wciśniemy „restart” i zobaczymy.
Teraz kiedy piłka dotrze do prawej krawędzi, odbije się.
I znów znika z ekranu. To nic: zrobimy to samo z drugiej strony.
Zobaczmy, czy piłka dotarła do lewej krawędzi.
To przy „x” mniejszym od 0.
Wtedy prędkość ma być dodatnia, dajmy więc 5.
Wcisnę „restart” i teraz...
bang...
Udało się!
Sprawdzamy, czy piłka wydostała się za krawędzie.
Chyba za daleko!
Jeśli pamiętacie, te parametry
wyznaczają środek elipsy.
Gdy środek dotrze do krawędzi,
połowa elipsy jest już za nią.
Żeby temu zaradzić, zatrzymamy elipsę wcześniej.
Krawędź jest tu, na 400, a my chcemy zatrzymać elipsę tu.
Widzimy w funkcji, że elipsa ma szerokość 50,
czyli od środka do krawędzi będzie 25.
Zatrzymamy, gdy środek dotrze do...
375. Bo to 400 minus 25.
Nie sprawdzamy więc, czy „x” jest większe od 400, ale od 375.
Ani nie sprawdzamy, czy „x” jest mniejsze od 0, ale od 25.
Teraz jest doskonale! Patrzcie, jak się odbija!