-
До цих пір ми бачили, як створити масив
і отримати доступ до нього.
-
Так, як й інші змінні, проте, одина дійсно
цікава можливість масивів це те, що ми
-
можемо змінювати їх динамічно
під час виконання програми.
-
Гаразд, дозвольте мені показати вам, що
я маю на увазі під цим.
-
Отже, у нас є ця програма, що відображає
Хопера, що тримає пару повітряних куль;
-
надзвичайно милий.
-
І це працює так як у нас є цей xPositions
масив, що містить два числа, які говорять
-
де ми хочемо мати ці повітряні кулі.
-
І потім тут у нас є цей цикл, що проходить
через кожний елемент в цьому масиві.
-
І для кожного з них, він малює лінію від
"х"вниз до руки Хопера, а потім малює
-
еліпс на "х" що є 30х40 пікселів, і це
наша повітряна куля.
-
Класно. І тепер ми бачимо, як це працює
ми знаємо, що якщо ми хочемо показати
-
ще одину повітряну кулю, що ми можемо
просто додати номер в масиві, чи не так?
-
наприклад 300.
-
Гарно. Тепер у нас є три повітряних кулі
для щасливого Хопера.
-
Але, припустимо, ми хочемо дати можливість
користувачеві, який не знає, як кодувати,
-
додавати нові повітряні кулі.
-
Таким чином, ми хотіли б дати програму
користувачеві і сказати: "Ви можете
-
натиснути кнопку, де б ви хотіли повітряну
кулю, і вона буде відображатися."
-
Чи не буде це круто? Я гадаю, що так.
-
І як ми повинні це робити? отже, ми
хочемо, щоб наша програма змінювалась
-
з плином часу, чи не так?
-
Кожен раз, коли користувач натисне,
повітряна куля з'явиться там.
-
Отже, почнемо, перемістиши все у функцію
"draw" і це легко змінювати з часу.
-
Тому, ми просто перемістимо це вниз сюди
і відступимо тут. Чудово.
-
І тепер ми хочемо, перевіряти чи
користувач натискає мишею прямо зараз?
-
Ми можемо зробити це з нашим "if".
If(mousePressed), а тоді що будемо робити.
-
Так що ж ми будемо робити? Якщо натиснути
мишею, то ми хочемо, якось додати число
-
до цього масиву.
-
І давайте ще раз зробимо лише ці
два елементи. Добре.
-
Отже, хочемо, додати число до цього масиву
якось. І я покажу вам один спосіб, яким ви
-
могли б зробити це.
-
Таким чином, ми можемо
ввести xPositions [2] = mouseX;
-
Добре, і дозвольте мені показати вам,
як це працює.
-
Я натиснула, і я отримала повітряну кулю.
Отже як це зроили?
-
Це говорить, що xPositions [2] каже знайти
цей масив, і знайти елемент на 2 місці,
-
і пам'ятайте, що це третій елемент, тому
що наші масиви починаються з нуля.
-
І якщо поглянете, то немає елемента 3,
чи не так? Там немає нічого в цьому місці.
-
І він каже, знайти це, а потім внести
в нього mouseX
-
А так як там нічого немає, значення
переходить від нічого до mouseX.
-
І тепер наш масив має довжину в 3 елементи
і цей цикл for знизу тут, що проходить через
-
нього, завершить малювати
третю повітряну кулю.
-
І це дуже класно, дозвольте мені натиснути
ще трохи, щоб показати вам, як це працює.
-
Так що ви бачите кожен раз, коли натискаю,
він продовжує малювати третю повітряну
-
де б я не натиснула мишею.
-
І це тому, що ми постійно переписуємо
розташування 2 - те що з індексом 2.
-
Ми постійно оновлюємо,
поточну mouseX.
-
Отже, ми матимемо тільки 3 повітряні кулі,
тому що одина в позиції 0, ця у 1, і ми
-
постійно змінюємо позицію 2. Зрозуміло?
-
І це круто але те, що ми дійсно хочемо, це
щоб користувач міг зробити купу повітряних
-
куль, чи не так?
-
Таким чином, кожен раз, коли користувач
натисне, з'явиться нова куля.
-
Це означає, що ми повинні постійно
збільшувати індекс елементу масиву,
-
який ми зберігаємо його всередині.
-
Ми не хочемо, щоб їх було 2 кожен раз,
а щоб було 2, а потім 3, 4, 5, 6 і т.д.
-
І ми могли б зробити це, маючи невелику
змінну лічильника. Тож введемо newind = 2;
-
Це те, з чого вона буде початинатись,
а потім ми введемо newind замість 2.
-
І тоді те, що ми дійсно хочемо зробити,
це ввести newind ++
-
Отже, кожен раз додаючи 1 до цього. ми
почнемо як 2, а потім стане 3, а тоді 4.
-
Так що кожен раз, натискаючи, вона
зростатиме. Так давайте спробуємо це.
-
Безліч повітряних куль.
Вечірка повітряних куль
-
Це чудово, чи не так? Але це не найкращий
спосіб зробити це, так як це складається з
-
додавання елементів в масив, те що ми
хочемо робити багато.
-
Таким чином, у нас є набагато простіший
спосіб зробити це.
-
Отже, дозвольте мені просто видалити це
все, що ми зробили. Гаразд, отже, нам не
-
потрібно це, і більше не буде потрібно.
Ми просто прокоментуємо це.
-
Отже, те як ми робимо це, ми вводимо
xPositions.push, а потім mouseX.
-
Так що, те ми робимо тут ми називаємо
методом масив з xPositions.
-
Так ми викликаємо команду по масиву.
Ми говоримо масиву, "Ей, перемісти це нове
-
значення, mouseX, перемісти його на кінець
вашого масиву."
-
Отже, кожен раз коли це викликається,
тобто натискають мишею, вона буде
-
дивитися на mouseX і сунути його до кінця масиву.
-
Отже, масив повинен ставати більшим
більшим і більшим. Так що давайте
-
перезапустимо і спробуємо це.
-
Це спрацювало! І це набагато менше коду,
ніж у нас було раніше. Гаразд?
-
І зазвичай, ви будете хотіти використати
"push" якщо ви збираєтеся додати
-
щось в масив, як це.
-
І це дуже акуратно так як ви можете просто
мати ці масиви, що стають все більшими
-
і більшими і більшими під час програми.
-
Як і коли у вас є анімація або коли у вас
є те що використовує користувач і потім
-
ви можете зробити набагато більше.
-
Так що тепер ви вже бачили 90% того,
для чого ви, ймовірно, використовуватимете
-
масиви і шляхи їхнього використання.
-
Але є ще багато чого, що ви можете робити
з масивами. Так що якщо у вас є питання,
-
просто запитуйте їх в обговоренні.
-
Але в першу чергу переконайтеся, чи
освоїоли ці основи.