0:00:01.164,0:00:04.437 Wiecie już, jak stworzyć tablicę[br]i dostać się do niej. 0:00:04.537,0:00:06.315 Tak jak pozostałe zmienne, 0:00:06.415,0:00:08.568 tablice mają świetną cechę: 0:00:08.668,0:00:10.706 możemy je zmieniać dynamicznie 0:00:10.806,0:00:13.043 w trakcie działania programu. 0:00:13.143,0:00:15.348 Pokażę, o co mi chodzi. 0:00:15.448,0:00:20.712 Ten program wyświetla[br]Hopper z balonikami. Ślicznie! 0:00:21.408,0:00:25.100 Mamy tablicę pozycji „x”, 0:00:25.200,0:00:27.021 zawierającą dwie liczby, 0:00:27.121,0:00:29.678 które pokazują,[br]gdzie mają być baloniki. 0:00:29.778,0:00:32.049 A tutaj mamy pętlę 0:00:32.150,0:00:35.480 przechodzącą przez każdy[br]element w tej tablicy. 0:00:35.580,0:00:40.309 Dla każdego elementu, pętla rysuje[br]kreskę od „x” do ręki Hopper, 0:00:40.409,0:00:43.816 a potem w pozycji „x”[br]rysuje elipsę 0:00:43.916,0:00:47.415 o wymiarach 30 na 40 pikseli.[br]Nasz balonik. 0:00:47.515,0:00:48.692 Fajnie! 0:00:48.792,0:00:51.223 Już wiemy, jak to działa. 0:00:51.323,0:00:54.125 Chcąc wyświetlić kolejny balonik, 0:00:54.225,0:00:56.772 dodamy liczbę do tablicy. 0:00:56.872,0:00:58.537 Np. - 300. 0:00:58.637,0:01:02.090 Pięknie! Teraz mamy trzy baloniki,[br]a Hopper się cieszy. 0:01:03.065,0:01:06.919 Ale powiedzmy, że chcemy[br]nauczyć użytkownika, 0:01:07.019,0:01:08.498 który nie programuje, 0:01:08.598,0:01:10.751 jak dodawać nowe baloniki. 0:01:10.851,0:01:14.320 Program powinien[br]mówić użytkownikowi: 0:01:14.420,0:01:17.856 „Kliknij tam, gdzie chcesz balonik,[br]a on się pokaże”. 0:01:17.956,0:01:20.503 Byłoby świetnie, prawda? Tak sądzę. 0:01:20.603,0:01:23.601 A zatem... jak to zrobić? 0:01:23.701,0:01:26.401 Chcemy, by program[br]zmieniał się w czasie. 0:01:26.501,0:01:28.274 Gdy użytkownik kliknie, 0:01:28.374,0:01:30.418 w tym miejscu pokaże się balonik. 0:01:30.518,0:01:34.714 Najpierw włóżmy wszystko[br]w funkcję „draw”, 0:01:34.814,0:01:37.802 żeby ułatwić zmiany. 0:01:38.313,0:01:40.403 Zacznijmy tutaj. 0:01:40.503,0:01:43.143 I jeszcze to... Świetnie! 0:01:43.243,0:01:48.344 Teraz sprawdzimy, czy użytkownik[br]właśnie wciska przycisk myszki. 0:01:48.444,0:01:50.248 Przyda się instrukcja warunkowa. 0:01:50.348,0:01:52.732 Jeśli przycisk jest wciśnięty, 0:01:53.800,0:01:56.564 to program musi coś zrobić. Co? 0:01:56.664,0:02:01.463 Po wciśnięciu przycisku[br]niech program dodaje coś do tablicy. 0:02:01.563,0:02:04.342 Zróbmy z powrotem dwa elementy. 0:02:04.442,0:02:07.895 Chcemy dodać liczbę do tablicy. 0:02:07.995,0:02:10.751 Pokażę wam jeden sposób. 0:02:10.851,0:02:13.143 Piszemy: xPositions... 0:02:13.243,0:02:15.116 nawias kwadratowy, dwójka... 0:02:15.650,0:02:17.694 = mouseX. 0:02:18.437,0:02:21.154 Zaraz zobaczycie, że to działa. 0:02:22.216,0:02:25.194 Kliknęłam i pokazał się balonik. 0:02:25.294,0:02:27.469 Co zrobił program? Powiedział... 0:02:28.538,0:02:30.376 xPositions[2] mówi: 0:02:30.476,0:02:34.273 „Znajdź tablicę[br]i element z numerem 2”. 0:02:34.373,0:02:38.429 Pamiętajcie, że to trzeci element,[br]bo tablica zaczyna się od 0. 0:02:38.529,0:02:42.005 Ale trzeciego elementu nie ma.[br]To miejsce jest puste. 0:02:42.105,0:02:45.701 Program mówi: „Znajdź miejsce[br]i ustaw mouseX”. 0:02:45.801,0:02:47.740 Ponieważ nie ma tam nic, 0:02:47.840,0:02:51.316 po prostu pojawia się[br]„mouseX”. 0:02:51.416,0:02:54.497 Teraz tablica ma trzy elementy. 0:02:54.597,0:02:59.583 A pętla FOR, przechodząc tędy,[br]narysuje trzeci balonik. 0:03:00.465,0:03:03.829 Super! Poklikam jeszcze,[br]zobaczycie, jak to działa. 0:03:03.929,0:03:06.293 Za każdym razem, gdy klikam, 0:03:06.393,0:03:08.714 pojawia się trzeci balonik. 0:03:08.814,0:03:10.473 Tam, gdzie kliknę myszką. 0:03:11.402,0:03:14.025 To dlatego, że ciągle zmieniamy... 0:03:14.838,0:03:18.832 miejsce drugie. Z numerem 2. 0:03:18.932,0:03:23.151 Ciągle to zmieniamy,[br]podając bieżącą pozycję mouseX. 0:03:23.251,0:03:26.100 Zawsze będą tylko trzy baloniki, 0:03:26.200,0:03:28.230 ten w punkcie 0, 0:03:28.330,0:03:31.162 ten w punkcie 1...[br]I stale zmieniamy... 0:03:32.183,0:03:34.130 punkt nr 2. W porządku? 0:03:34.749,0:03:35.879 To jest dobre, 0:03:35.979,0:03:39.869 ale chcemy, żeby użytkownik[br]robił masę baloników! 0:03:39.969,0:03:42.632 Każde kliknięcie to nowy balonik. 0:03:43.379,0:03:47.276 Czyli musimy stale zwiększać 0:03:47.376,0:03:50.597 numer elementu tablicy,[br]w którym to przechowujemy. 0:03:50.697,0:03:55.496 Nie zawsze ma być 2,[br]tylko 2, 3, 4, 5, 6 itd. 0:03:56.216,0:03:59.185 Zrobimy to dzięki[br]zmiennej liczącej. 0:03:59.285,0:04:00.790 Napiszemy „newInd=2”. 0:04:00.890,0:04:02.439 Od tego zaczniemy. 0:04:02.539,0:04:05.597 Tu napiszemy „newInd” zamiast „2”, 0:04:05.697,0:04:09.475 ale docelowo ma być „newInd++”. 0:04:09.575,0:04:11.657 Czyli za każdym razem dodajemy 1. 0:04:11.757,0:04:13.004 Zaczynamy od 2, 0:04:13.549,0:04:16.834 potem jest 3, 4...[br]Za każdym kliknięciem - więcej. 0:04:16.935,0:04:18.043 Spróbujmy! 0:04:18.252,0:04:20.127 Hura! Mnóstwo baloników! 0:04:20.226,0:04:21.944 Balonikowe szaleństwo! 0:04:22.043,0:04:24.126 Fajnie, prawda? 0:04:24.708,0:04:27.122 Ale to nie jest najlepsza metoda. 0:04:27.222,0:04:28.469 Okazuje się, 0:04:28.569,0:04:32.044 że będziemy często[br]dodawać elementy do tablicy. 0:04:32.144,0:04:34.715 Jest znacznie prostszy sposób. 0:04:34.815,0:04:37.896 Skasuję to, co napisaliśmy... 0:04:37.996,0:04:40.907 To już nie jest potrzebne. 0:04:41.007,0:04:42.377 Cofamy. 0:04:42.477,0:04:45.442 Robimy tak. Piszemy: „xPositions”, 0:04:46.073,0:04:48.132 potem kropka, „push” 0:04:48.232,0:04:50.226 i „mouseX”. 0:04:50.916,0:04:56.237 Przywołujemy tę metodę[br]w tablicy „xPositions”. 0:04:56.337,0:04:58.353 Wydajemy polecenie. 0:04:58.453,0:05:02.254 Mówimy: „Wepchnij nową wartość, 0:05:02.354,0:05:05.342 czyli mouseX, na koniec tablicy“. 0:05:05.442,0:05:09.080 Przy każdym przywołaniu,[br]czyli gdy ktoś klika myszką, 0:05:09.180,0:05:12.494 program spojrzy na „mouseX”[br]i umieści to na końcu tablicy. 0:05:12.594,0:05:15.118 Tablica będzie się zatem powiększać. 0:05:15.218,0:05:16.859 Zacznijmy od nowa. 0:05:17.648,0:05:22.247 Udało się! A program jest krótszy[br]niż przedtem! 0:05:23.082,0:05:27.401 Na ogół będziecie używać „push”,[br]żeby dodać elementy do tablicy. 0:05:27.501,0:05:31.541 I świetnie: tablice rosną[br]w czasie trwania programu. 0:05:31.641,0:05:36.224 Np. przy animacji, albo gdy użytkownik[br]coś robi... Możliwości jest dużo. 0:05:36.324,0:05:41.542 Widzieliście 90% tego, do czego[br]używa się tablic - i jak się to robi. 0:05:41.642,0:05:43.864 Ale to nie wszystko. 0:05:43.964,0:05:47.045 Jeśli macie pytania, zadawajcie je. 0:05:47.145,0:05:49.738 Tylko najpierw opanujcie podstawy!