До цих пір ми бачили, як створити масив і отримати доступ до нього.
Так, як й інші змінні, проте, одина дійсно цікава можливість масивів це те, що ми
можемо змінювати їх динамічно під час виконання програми.
Гаразд, дозвольте мені показати вам, що я маю на увазі під цим.
Отже, у нас є ця програма, що відображає Хопера, що тримає пару повітряних куль;
надзвичайно милий.
І це працює так як у нас є цей 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% того, для чого ви, ймовірно, використовуватимете
масиви і шляхи їхнього використання.
Але є ще багато чого, що ви можете робити з масивами. Так що якщо у вас є питання,
просто запитуйте їх в обговоренні.
Але в першу чергу переконайтеся, чи освоїоли ці основи.