1 00:00:01,252 --> 00:00:04,512 До цих пір ми бачили, як створити масив і отримати доступ до нього. 2 00:00:04,512 --> 00:00:08,642 Так, як й інші змінні, проте, одина дійсно цікава можливість масивів це те, що ми 3 00:00:08,642 --> 00:00:12,512 можемо змінювати їх динамічно під час виконання програми. 4 00:00:12,958 --> 00:00:15,818 Гаразд, дозвольте мені показати вам, що я маю на увазі під цим. 5 00:00:15,818 --> 00:00:19,818 Отже, у нас є ця програма, що відображає Хопера, що тримає пару повітряних куль; 6 00:00:19,818 --> 00:00:21,128 надзвичайно милий. 7 00:00:21,128 --> 00:00:27,758 І це працює так як у нас є цей xPositions масив, що містить два числа, які говорять 8 00:00:27,758 --> 00:00:29,534 де ми хочемо мати ці повітряні кулі. 9 00:00:29,534 --> 00:00:35,204 І потім тут у нас є цей цикл, що проходить через кожний елемент в цьому масиві. 10 00:00:35,204 --> 00:00:41,974 І для кожного з них, він малює лінію від "х"вниз до руки Хопера, а потім малює 11 00:00:41,974 --> 00:00:46,744 еліпс на "х" що є 30х40 пікселів, і це наша повітряна куля. 12 00:00:48,032 --> 00:00:52,492 Класно. І тепер ми бачимо, як це працює ми знаємо, що якщо ми хочемо показати 13 00:00:52,492 --> 00:00:57,305 ще одину повітряну кулю, що ми можемо просто додати номер в масиві, чи не так? 14 00:00:57,305 --> 00:00:58,255 наприклад 300. 15 00:00:58,255 --> 00:01:02,206 Гарно. Тепер у нас є три повітряних кулі для щасливого Хопера. 16 00:01:03,036 --> 00:01:08,646 Але, припустимо, ми хочемо дати можливість користувачеві, який не знає, як кодувати, 17 00:01:08,646 --> 00:01:10,986 додавати нові повітряні кулі. 18 00:01:10,986 --> 00:01:14,986 Таким чином, ми хотіли б дати програму користувачеві і сказати: "Ви можете 19 00:01:14,986 --> 00:01:18,116 натиснути кнопку, де б ви хотіли повітряну кулю, і вона буде відображатися." 20 00:01:18,116 --> 00:01:20,656 Чи не буде це круто? Я гадаю, що так. 21 00:01:21,042 --> 00:01:24,972 І як ми повинні це робити? отже, ми хочемо, щоб наша програма змінювалась 22 00:01:24,972 --> 00:01:26,522 з плином часу, чи не так? 23 00:01:26,522 --> 00:01:29,852 Кожен раз, коли користувач натисне, повітряна куля з'явиться там. 24 00:01:30,288 --> 00:01:37,108 Отже, почнемо, перемістиши все у функцію "draw" і це легко змінювати з часу. 25 00:01:37,108 --> 00:01:42,618 Тому, ми просто перемістимо це вниз сюди і відступимо тут. Чудово. 26 00:01:43,278 --> 00:01:48,458 І тепер ми хочемо, перевіряти чи користувач натискає мишею прямо зараз? 27 00:01:48,458 --> 00:01:55,448 Ми можемо зробити це з нашим "if". If(mousePressed), а тоді що будемо робити. 28 00:01:55,448 --> 00:02:00,068 Так що ж ми будемо робити? Якщо натиснути мишею, то ми хочемо, якось додати число 29 00:02:00,068 --> 00:02:01,438 до цього масиву. 30 00:02:01,438 --> 00:02:04,058 І давайте ще раз зробимо лише ці два елементи. Добре. 31 00:02:04,202 --> 00:02:09,402 Отже, хочемо, додати число до цього масиву якось. І я покажу вам один спосіб, яким ви 32 00:02:09,402 --> 00:02:10,811 могли б зробити це. 33 00:02:10,811 --> 00:02:17,801 Таким чином, ми можемо ввести xPositions [2] = mouseX; 34 00:02:18,170 --> 00:02:21,330 Добре, і дозвольте мені показати вам, як це працює. 35 00:02:22,255 --> 00:02:26,565 Я натиснула, і я отримала повітряну кулю. Отже як це зроили? 36 00:02:26,565 --> 00:02:34,045 Це говорить, що xPositions [2] каже знайти цей масив, і знайти елемент на 2 місці, 37 00:02:34,045 --> 00:02:38,045 і пам'ятайте, що це третій елемент, тому що наші масиви починаються з нуля. 38 00:02:38,045 --> 00:02:42,045 І якщо поглянете, то немає елемента 3, чи не так? Там немає нічого в цьому місці. 39 00:02:42,045 --> 00:02:46,045 І він каже, знайти це, а потім внести в нього mouseX 40 00:02:46,045 --> 00:02:51,225 А так як там нічого немає, значення переходить від нічого до mouseX. 41 00:02:51,225 --> 00:02:56,355 І тепер наш масив має довжину в 3 елементи і цей цикл for знизу тут, що проходить через 42 00:02:56,355 --> 00:02:59,815 нього, завершить малювати третю повітряну кулю. 43 00:03:00,754 --> 00:03:04,064 І це дуже класно, дозвольте мені натиснути ще трохи, щоб показати вам, як це працює. 44 00:03:04,064 --> 00:03:08,754 Так що ви бачите кожен раз, коли натискаю, він продовжує малювати третю повітряну 45 00:03:08,754 --> 00:03:11,074 де б я не натиснула мишею. 46 00:03:11,384 --> 00:03:18,664 І це тому, що ми постійно переписуємо розташування 2 - те що з індексом 2. 47 00:03:18,664 --> 00:03:22,664 Ми постійно оновлюємо, поточну mouseX. 48 00:03:22,817 --> 00:03:29,837 Отже, ми матимемо тільки 3 повітряні кулі, тому що одина в позиції 0, ця у 1, і ми 49 00:03:29,847 --> 00:03:34,267 постійно змінюємо позицію 2. Зрозуміло? 50 00:03:34,464 --> 00:03:39,324 І це круто але те, що ми дійсно хочемо, це щоб користувач міг зробити купу повітряних 51 00:03:39,324 --> 00:03:40,324 куль, чи не так? 52 00:03:40,364 --> 00:03:43,338 Таким чином, кожен раз, коли користувач натисне, з'явиться нова куля. 53 00:03:43,358 --> 00:03:49,708 Це означає, що ми повинні постійно збільшувати індекс елементу масиву, 54 00:03:49,708 --> 00:03:50,778 який ми зберігаємо його всередині. 55 00:03:50,778 --> 00:03:56,338 Ми не хочемо, щоб їх було 2 кожен раз, а щоб було 2, а потім 3, 4, 5, 6 і т.д. 56 00:03:56,338 --> 00:04:00,558 І ми могли б зробити це, маючи невелику змінну лічильника. Тож введемо newind = 2; 57 00:04:00,558 --> 00:04:04,558 Це те, з чого вона буде початинатись, а потім ми введемо newind замість 2. 58 00:04:05,506 --> 00:04:09,479 І тоді те, що ми дійсно хочемо зробити, це ввести newind ++ 59 00:04:09,479 --> 00:04:14,929 Отже, кожен раз додаючи 1 до цього. ми почнемо як 2, а потім стане 3, а тоді 4. 60 00:04:14,929 --> 00:04:18,029 Так що кожен раз, натискаючи, вона зростатиме. Так давайте спробуємо це. 61 00:04:19,101 --> 00:04:21,551 Безліч повітряних куль. Вечірка повітряних куль 62 00:04:22,032 --> 00:04:28,522 Це чудово, чи не так? Але це не найкращий спосіб зробити це, так як це складається з 63 00:04:28,522 --> 00:04:32,282 додавання елементів в масив, те що ми хочемо робити багато. 64 00:04:32,282 --> 00:04:35,172 Таким чином, у нас є набагато простіший спосіб зробити це. 65 00:04:35,172 --> 00:04:39,062 Отже, дозвольте мені просто видалити це все, що ми зробили. Гаразд, отже, нам не 66 00:04:39,062 --> 00:04:42,211 потрібно це, і більше не буде потрібно. Ми просто прокоментуємо це. 67 00:04:42,211 --> 00:04:50,251 Отже, те як ми робимо це, ми вводимо xPositions.push, а потім mouseX. 68 00:04:51,034 --> 00:04:56,144 Так що, те ми робимо тут ми називаємо методом масив з xPositions. 69 00:04:56,144 --> 00:05:01,164 Так ми викликаємо команду по масиву. Ми говоримо масиву, "Ей, перемісти це нове 70 00:05:01,164 --> 00:05:05,164 значення, mouseX, перемісти його на кінець вашого масиву." 71 00:05:05,164 --> 00:05:09,164 Отже, кожен раз коли це викликається, тобто натискають мишею, вона буде 72 00:05:09,164 --> 00:05:12,424 дивитися на mouseX і сунути його до кінця масиву. 73 00:05:12,424 --> 00:05:15,574 Отже, масив повинен ставати більшим більшим і більшим. Так що давайте 74 00:05:15,574 --> 00:05:17,304 перезапустимо і спробуємо це. 75 00:05:18,308 --> 00:05:22,308 Це спрацювало! І це набагато менше коду, ніж у нас було раніше. Гаразд? 76 00:05:22,704 --> 00:05:26,234 І зазвичай, ви будете хотіти використати "push" якщо ви збираєтеся додати 77 00:05:26,234 --> 00:05:27,654 щось в масив, як це. 78 00:05:27,654 --> 00:05:30,144 І це дуже акуратно так як ви можете просто мати ці масиви, що стають все більшими 79 00:05:30,144 --> 00:05:31,904 і більшими і більшими під час програми. 80 00:05:31,904 --> 00:05:34,277 Як і коли у вас є анімація або коли у вас є те що використовує користувач і потім 81 00:05:34,277 --> 00:05:35,917 ви можете зробити набагато більше. 82 00:05:36,401 --> 00:05:39,731 Так що тепер ви вже бачили 90% того, для чого ви, ймовірно, використовуватимете 83 00:05:39,731 --> 00:05:41,881 масиви і шляхи їхнього використання. 84 00:05:41,881 --> 00:05:45,251 Але є ще багато чого, що ви можете робити з масивами. Так що якщо у вас є питання, 85 00:05:45,251 --> 00:05:46,908 просто запитуйте їх в обговоренні. 86 00:05:46,908 --> 00:05:49,888 Але в першу чергу переконайтеся, чи освоїоли ці основи.