0:00:01.078,0:00:04.876 Robiliśmy animację piłki[br]odbijającej się od ścian. 0:00:04.976,0:00:08.359 Użyliśmy funkcji rysowania[br]i instrukcji warunkowych. 0:00:08.459,0:00:12.120 Określiliśmy zmienne[br]dla pozycji i prędkości piłki. 0:00:12.220,0:00:17.205 W funkcji rysowania, wywoływanej[br]raz po raz przez program, 0:00:17.305,0:00:20.758 malujemy tło i rysujemy elipsę. 0:00:20.858,0:00:24.822 Punkt zależy od zmiennej[br]pozycji oraz prędkości 0:00:24.922,0:00:27.469 i tego, jak na siebie wpływają. 0:00:27.569,0:00:31.091 Bez instrukcji warunkowych[br]piłka leciała i leciała, 0:00:31.191,0:00:32.762 aż wcisnęliśmy „restart”. 0:00:32.863,0:00:35.689 Dodaliśmy dwie instrukcje warunkowe, 0:00:35.789,0:00:40.621 żeby sprawdzić, czy piłka[br]jest blisko lewej lub prawej krawędzi, 0:00:40.721,0:00:45.441 a wtedy zmienialiśmy kierunek,[br]żeby piłka się odbijała. 0:00:45.541,0:00:49.690 Teraz piłka będzie się odbijała[br]w nieskończoność. 0:00:49.790,0:00:53.591 Fajna rzecz. W ten sposób[br]można zrobić wiele animacji. 0:00:53.691,0:00:57.213 Teraz włączę do programu[br]interakcję z użytkownikiem. 0:00:57.313,0:01:00.004 Na razie - to jak program w TV. 0:01:00.104,0:01:03.163 Jeśli dacie go koledze,[br]który nie umie programować, 0:01:03.263,0:01:06.618 nie zrobi nic poza patrzeniem. 0:01:06.718,0:01:10.031 To jest niezłe, ale lepiej[br]byłoby coś zrobić. 0:01:10.131,0:01:13.235 Dajmy użytkownikowi[br]kontrolę nad piłką. 0:01:13.335,0:01:17.322 Pamiętacie, jak uczyliśmy się[br]o zmiennych globalnych 0:01:17.422,0:01:20.085 „mouseX” i „mouseY”? 0:01:20.953,0:01:25.890 Zwracają liczby mówiące o bieżącej[br]pozycji myszki użytkownika. 0:01:25.990,0:01:28.421 Dzięki nim program[br]będzie interaktywny. 0:01:28.521,0:01:30.975 Pomyślmy - jak je wykorzystać? 0:01:31.075,0:01:34.598 Gdzieś wewnątrz funkcji rysowania. 0:01:34.698,0:01:39.056 Bo to jedyny stale wywoływany[br]kod w trakcie działania programu. 0:01:39.156,0:01:42.126 Wszystko spoza „draw”[br]jest wywoływane raz, 0:01:42.725,0:01:44.373 gdy program się uruchamia. 0:01:44.473,0:01:47.694 Nie ma sensu używać tam[br]„mouseX” i „mouseY”. 0:01:47.794,0:01:49.853 Żadnej szansy na interakcję. 0:01:50.944,0:01:54.497 W „draw” teraz rysujemy piłkę 0:01:54.597,0:01:56.726 200 pikseli w dół ekranu. 0:01:57.353,0:02:00.836 A gdybyśmy zastąpili to „mouseY”? 0:02:00.936,0:02:02.438 Bo to jest pozycja „y”. 0:02:02.538,0:02:08.429 Program doda pozycję „y”[br]zależnie od pozycji „y” użytkownika. 0:02:08.529,0:02:09.729 Patrzcie: 0:02:09.829,0:02:11.776 Poruszając kursorem w pionie, 0:02:11.876,0:02:15.233 zmieniam trasę[br]poruszania się piłki. I super! 0:02:15.969,0:02:18.135 Ale chcę też użyć „mouseX”. 0:02:18.235,0:02:21.873 Jak to zrobić?[br]Może zaprogramujmy drugą piłkę. 0:02:21.973,0:02:26.471 Niech przemieszcza się[br]w górę i w dół. 0:02:27.168,0:02:30.836 Wtedy użytkownik[br]będzie kontrolował pozycję „x”. 0:02:30.936,0:02:33.615 Zrobimy odwrotnie[br]niż poprzednio. Elipsa... 0:02:33.715,0:02:38.974 „mouseX” pozycja: 50,50. 0:02:39.799,0:02:41.680 Spójrzcie! 0:02:41.780,0:02:46.927 Mam dwie piłki, poruszające się[br]prostopadle do siebie. 0:02:48.049,0:02:49.900 Ale to jeszcze nie to. 0:02:50.000,0:02:53.270 Chcę więcej kontroli[br]dla użytkownika! 0:02:53.445,0:02:56.773 Żeby sam mógł stworzyć[br]drugą piłkę. 0:02:56.873,0:03:01.236 Po prostu wciskając[br]przycisk myszki. 0:03:01.789,0:03:06.665 Tylko jak powiedzieć programowi,[br]że ktoś wciska przycisk? 0:03:07.756,0:03:12.586 Na szczęście mamy do tego[br]wyjątkową zmienną logiczną. 0:03:12.686,0:03:18.298 Nazywa się „mouseIsPressed”[br]i używamy jej w instrukcji warunkowej. 0:03:18.971,0:03:21.827 Zobaczmy. To druga piłka. 0:03:21.927,0:03:24.683 Możemy więc napisać: „if” (jeśli) 0:03:24.783,0:03:26.608 „mouseIsPressed”, 0:03:28.406,0:03:31.719 i przenosimy tu dwukropek elipsy. 0:03:31.819,0:03:35.736 Tutaj mówimy programowi, 0:03:35.836,0:03:40.914 że ma narysować tę elipsę[br]tylko jeśli to jest prawda. 0:03:41.014,0:03:45.233 A „mouseIsPressed” jest prawdą,[br]gdy użytkownik wciska klawisz myszki. 0:03:45.333,0:03:47.160 Spróbujmy. 0:03:49.811,0:03:52.826 Piłka pojawi się,[br]gdy wcisnę przycisk myszki. 0:03:52.926,0:03:57.958 Przylatuje ze wszechświata[br]równoległego. Jest! Jest! 0:03:58.058,0:03:59.699 Świetnie! 0:03:59.799,0:04:04.506 W zmiennej „mouseIsPressed”[br]ciekawe jest to, 0:04:04.606,0:04:09.591 że zmienia się zależnie od działania[br]użytkownika, a nie programu. 0:04:09.691,0:04:13.213 A że funkcja „draw”[br]jest wywoływana raz po raz, 0:04:13.313,0:04:16.000 wynik będzie się zmieniał, 0:04:16.100,0:04:18.507 z małą pomocą użytkownika. 0:04:18.607,0:04:22.269 Dzięki połączonym siłom instrukcji[br]warunkowej i „mouseIsPressed”, 0:04:22.369,0:04:27.633 macie wszystko, żeby robić[br]świetne programy do rysowania.