WEBVTT 00:00:01.316 --> 00:00:04.872 Kolejna animacja! Tym razem po ekranie lata piłka. 00:00:04.933 --> 00:00:06.803 Wiecie, dlaczego. 00:00:06.903 --> 00:00:09.659 Mamy zmienną „x” określającą pozycję piłki, 00:00:09.759 --> 00:00:13.792 zmienną „speed”, która mówi o prędkości 00:00:13.892 --> 00:00:17.275 i znajomą pętlę rysowania. Za każdym razem robimy tło, 00:00:17.375 --> 00:00:19.922 wybieramy kolory i rysujemy elipsę w „x”. 00:00:20.022 --> 00:00:23.196 Zawsze zamieniamy „x” na starą wartość „x” 00:00:23.296 --> 00:00:24.961 plus zmienną „speed”. 00:00:25.510 --> 00:00:27.445 Jeśli zmniejszę „speed”, 00:00:27.545 --> 00:00:30.093 wcisnę „restart”, by piłka wróciła... 00:00:30.193 --> 00:00:31.695 Porusza się wolniej. 00:00:31.795 --> 00:00:34.969 Przy wartości ujemnej będzie się cofać, 00:00:35.069 --> 00:00:38.034 a przy zerze się zatrzyma. 00:00:38.134 --> 00:00:40.443 Przy każdej prędkości niezerowej 00:00:40.543 --> 00:00:42.887 piłka w końcu zniknie z ekranu. 00:00:42.987 --> 00:00:46.695 Mogę ją odzyskać, wciskając „restart”, 00:00:47.240 --> 00:00:48.924 ale to męczy. 00:00:49.024 --> 00:00:52.128 Restartujesz, restartujesz... 00:00:52.228 --> 00:00:55.439 A może tak? Gdy piłka dociera do prawej krawędzi ekranu, 00:00:55.539 --> 00:00:59.419 zamiast zniknąć, niech zawróci. 00:01:00.375 --> 00:01:06.200 Wiem, jak to zrobić. Wystarczy, że „speed” zyska wartość -5. 00:01:06.300 --> 00:01:09.752 Przy prędkości ujemnej piłka będzie się poruszać wstecz. 00:01:09.852 --> 00:01:11.321 Jest jednak problem. 00:01:11.421 --> 00:01:15.650 Prędkość chcę zmieniać tylko wtedy, gdy piłka dotrze do prawej krawędzi. 00:01:17.995 --> 00:01:19.455 Już to mówiłam. 00:01:19.555 --> 00:01:24.683 Chcę zmienić prędkość, jeśli piłka dotrze do prawej krawędzi. 00:01:25.208 --> 00:01:27.283 Potrzebna jest instrukcja warunkowa. 00:01:27.383 --> 00:01:31.533 Do tej pory komputer wykonywał polecenia bez względu na wszystko. 00:01:31.633 --> 00:01:33.192 Teraz mogę powiedzieć: 00:01:33.292 --> 00:01:38.150 „Uruchom ten program, ale w konkretnych okolicznościach. 00:01:38.250 --> 00:01:42.539 Zmień prędkość piłki, jeśli dotrze ona do krawędzi”. 00:01:42.639 --> 00:01:46.788 Tak to wygląda w programie. Wpisujemy „if”, 00:01:46.888 --> 00:01:50.888 nawiasy okrągłe i klamry. 00:01:50.988 --> 00:01:53.940 W nawiasie umieszczamy warunek. 00:01:54.040 --> 00:01:57.446 W klamrach - program do uruchomienia. 00:01:57.546 --> 00:02:00.232 Jest tak: „Jeśli zachodzi ta sytuacja, 00:02:00.332 --> 00:02:03.297 uruchom program. Inaczej - nie trudź się”. 00:02:03.895 --> 00:02:07.152 Tu warunkiem jest dotarcie piłki do prawej krawędzi. 00:02:07.252 --> 00:02:09.722 Skąd mamy wiedzieć, czy to się stało? 00:02:09.822 --> 00:02:13.421 Zmienna „x” mówi, gdzie jest piłka. 00:02:13.521 --> 00:02:19.296 I wiem, że krawędź pola znajduje się w pozycji 400. 00:02:20.248 --> 00:02:22.338 Zatem zobaczmy. 00:02:22.723 --> 00:02:26.076 Gdy „x” jest większe od 400, 00:02:26.176 --> 00:02:29.838 to wiemy, że piłka wyleciała poza krawędź. 00:02:29.938 --> 00:02:32.973 Zobaczmy, jak to działa. W programie 00:02:33.073 --> 00:02:37.640 tylko zmienimy prędkość. Na -5. 00:02:38.127 --> 00:02:41.192 Wciśniemy „restart” i zobaczymy. 00:02:41.292 --> 00:02:45.372 Teraz kiedy piłka dotrze do prawej krawędzi, odbije się. 00:02:45.472 --> 00:02:49.684 I znów znika z ekranu. To nic: zrobimy to samo z drugiej strony. 00:02:49.784 --> 00:02:52.862 Zobaczmy, czy piłka dotarła do lewej krawędzi. 00:02:52.962 --> 00:02:56.494 To przy „x” mniejszym od 0. 00:02:57.771 --> 00:03:03.066 Wtedy prędkość ma być dodatnia, dajmy więc 5. 00:03:04.007 --> 00:03:07.640 Wcisnę „restart” i teraz... 00:03:07.740 --> 00:03:09.315 bang... 00:03:09.415 --> 00:03:11.959 bang... 00:03:12.059 --> 00:03:13.909 bang... 00:03:14.722 --> 00:03:16.603 Udało się! 00:03:17.171 --> 00:03:20.500 Sprawdzamy, czy piłka wydostała się za krawędzie. 00:03:20.600 --> 00:03:23.474 Chyba za daleko! 00:03:23.574 --> 00:03:26.007 Jeśli pamiętacie, te parametry 00:03:26.107 --> 00:03:29.211 wyznaczają środek elipsy. 00:03:29.311 --> 00:03:32.698 Gdy środek dotrze do krawędzi, 00:03:32.798 --> 00:03:35.365 połowa elipsy jest już za nią. 00:03:35.465 --> 00:03:39.498 Żeby temu zaradzić, zatrzymamy elipsę wcześniej. 00:03:39.598 --> 00:03:44.792 Krawędź jest tu, na 400, a my chcemy zatrzymać elipsę tu. 00:03:44.892 --> 00:03:50.504 Widzimy w funkcji, że elipsa ma szerokość 50, 00:03:51.967 --> 00:03:56.773 czyli od środka do krawędzi będzie 25. 00:03:57.934 --> 00:04:01.417 Zatrzymamy, gdy środek dotrze do... 00:04:01.517 --> 00:04:04.691 375. Bo to 400 minus 25. 00:04:05.365 --> 00:04:10.589 Nie sprawdzamy więc, czy „x” jest większe od 400, ale od 375. 00:04:10.689 --> 00:04:14.792 Ani nie sprawdzamy, czy „x” jest mniejsze od 0, ale od 25. 00:04:16.882 --> 00:04:20.781 Teraz jest doskonale! Patrzcie, jak się odbija!