0:00:01.082,0:00:02.115 У попередньому відео, ми показали як 0:00:02.115,0:00:04.588 ви можете мультиплікувати м'яч,[br]щоб він відскакував від стін 0:00:04.588,0:00:07.175 використовуючи функцію "draw"[br]та умовні оператори "if". 0:00:07.175,0:00:08.223 Пригадаймо все. 0:00:08.493,0:00:11.996 Спочатку, ми визначаємо початкові змінні[br]для визначення розташування і швидкості м'яча. 0:00:12.196,0:00:14.744 Тоді, у фінкції "draw",[br]що є спеціальною функцією 0:00:14.744,0:00:17.197 яка викликається кожного разу, коли [br]виконується програма, 0:00:17.287,0:00:20.731 ми змінюємо колір фону[br]і малюємо еліпс в редакторі 0:00:20.731,0:00:23.536 і визначаємо розташування цього еліпса[br]на основі змінних "position" 0:00:23.536,0:00:26.848 та "speed"[br]і як вони впливають один на одного. 0:00:27.468,0:00:28.905 Тепер, без умовного оператора "if" 0:00:28.905,0:00:31.116 наш м'яч буде просто безперервно рухатись 0:00:31.116,0:00:32.921 доки ми не натиснемо кнопку "перезапустити". 0:00:32.921,0:00:36.823 Тому ми додали 2 умовних оператори "if" [br]тут знизу, щоб перевірити і побачити 0:00:36.823,0:00:39.134 чи був м'яч близько до правої сторони екрану 0:00:39.134,0:00:40.329 або до лівої сторони екрану. 0:00:40.329,0:00:43.263 І якщо так, ми змінюєм швидкість на[br]додатнє або від'ємне значення 0:00:43.263,0:00:45.442 так, щоб м'яч[br]міг просто відскакувати назад. 0:00:45.442,0:00:49.455 Отже, тепер у нас є просто м'яч,[br]що відскакуватиме вічно, вперед і назад. 0:00:49.955,0:00:51.095 Це було досить круто 0:00:51.095,0:00:52.398 і насправді існує ще багато [br]класних анімацій 0:00:52.398,0:00:53.805 які ми можемо використати. 0:00:53.805,0:00:57.117 А зараз, я хочу додати інтерфейс[br]користувача до цієї програми. 0:00:57.477,0:00:59.936 Погляньте, прямо зараз,[br]ця програма виглядає як Телешоу. 0:01:00.086,0:01:01.314 Якщо ви поділились нею зі своїми друзями, 0:01:01.494,0:01:03.122 і вони не знають як[br]програмувати, 0:01:03.122,0:01:04.817 вони не зможуть з нею взаємодіяти. 0:01:04.817,0:01:07.435 Все, що вони могли б робити - це[br]спостерігати, що є досить непогано, 0:01:07.435,0:01:09.933 але було б трохи краще, якби[br]вони могли б зробити хоть щось. 0:01:10.193,0:01:12.744 Що ж, спробуймо надати користувачу [br]способи управління нею. 0:01:13.264,0:01:15.335 Пам'ятаєте, раніше ми дізналися 0:01:15.335,0:01:20.032 про дві спеціальні глобальні змінні,[br]що називаються "mouseX" і "mouseY". 0:01:20.901,0:01:22.708 Вони повертають числа, 0:01:22.708,0:01:25.790 що вказують нам на поточне розташування[br]миші користувача 0:01:25.790,0:01:27.857 і вони є хорошим способом,[br]щоб зробити програму більш інтерактивною. 0:01:28.867,0:01:30.811 Тож, подивімось як ми можем [br]використати їх. 0:01:30.811,0:01:34.201 Що ж, нам потрібно використати їх[br]десь всередині функції "draw". 0:01:34.631,0:01:36.153 Тому що це єдиний код, 0:01:36.183,0:01:38.582 що викликається щоразу,[br]коли запускається програма. 0:01:39.272,0:01:42.557 Все, що знаходиться за межами функції "draw",[br]викликається тільки один раз, 0:01:42.557,0:01:44.572 при першому запуску програми. 0:01:44.623,0:01:47.594 Тому, немає сенсу використовувати[br]там змінні "mouseX" та "mouseY". 0:01:47.594,0:01:50.242 Користувач не матиме можливості[br]взаємодіяти з нею. 0:01:50.862,0:01:56.769 Зараз у функції "draw" ми малюємо м'яч на відстані[br]200 пікселів від нижньої частини екрана. 0:01:56.969,0:02:00.204 Чому б нам не замінити цей параметр[br]змінною "mouseY"? 0:02:00.944,0:02:02.440 Оскільки це позиція "Y", чи не так? 0:02:02.440,0:02:07.832 В такий спосіб ми додамо "Y" позицію, що[br]залежить від позиції "Y" користувача. 0:02:07.832,0:02:09.511 Чи не так? Тож оцініть. 0:02:09.831,0:02:11.661 Рухаючи свій курсор вниз і вгору 0:02:11.661,0:02:14.226 я можу змінювати лінію[br]уздовж якої рухається м'яч. 0:02:14.226,0:02:14.940 Це досить не погано. 0:02:15.850,0:02:19.906 Але я хочу, також використати "mouseX" [br]Отже, як мені це зробити? 0:02:19.906,0:02:22.068 А чому б нам не створити ще один м'яч 0:02:22.068,0:02:26.268 і матимемо м'ячі, що рухатимуться у [br]протилежних напрямках: вгору та вниз. 0:02:26.988,0:02:31.035 І ми матимемо елемент для користувацького[br]управління позицією "X". 0:02:31.035,0:02:38.270 Таким чином, ми просто зробимо навпаки.[br]Еліпсу присвоїмо параметри: mouseX, position, 50, 50. 0:02:39.967,0:02:41.970 Отже, погляньте. 0:02:41.970,0:02:48.544 У мене є два м'ячі, які я контролюю,[br]і вони рухаються в перпендикулярних напрямках. 0:02:48.731,0:02:53.429 Але, я все ще не задоволена. Я хочу, [br]надати користувачеві ще більший контроль. 0:02:53.429,0:02:56.845 Я хочу надати користувачу здатність[br]запускати другий м'яч. 0:02:56.845,0:03:00.900 Щоб фактично створювати його клацаючи[br]мишею. 0:03:02.000,0:03:03.621 Тоді мені потрібно з'ясувати 0:03:03.621,0:03:06.759 як повідомити, що користувач [br]клацає мишею. 0:03:07.760,0:03:12.524 На щастя, для цього у нас є супер спеціальна [br]логічна змінна. 0:03:12.674,0:03:18.336 Вона називається "mouseIsPressed" і ми[br]можемо використати її в операторі "if". 0:03:19.126,0:03:21.707 Що ж, погляньмо. Це наш другий м'яч. 0:03:21.797,0:03:26.920 То ми можемо написати "if" [br]"mouseIsPressed" 0:03:28.330,0:03:30.995 і тоді ми переставимо код еліпса туди. 0:03:31.898,0:03:33.930 Отже, те що ми робимо тут, 0:03:33.930,0:03:39.301 це говоримо програмі, що ми лише хочемо[br]намалювати цей еліпс 0:03:39.301,0:03:43.603 якщо оператор "if" істинний і[br]"mouseIsPressed" буде тільки істинна, 0:03:43.603,0:03:45.483 якщо користувач натискає мишею. 0:03:45.483,0:03:49.222 Отже, спробуймо. Та дааам! 0:03:49.702,0:03:52.697 Тож тепер я можу змусити м'яч з'являтися[br]кожного разу, коли я натискаю клавішу миші. 0:03:52.697,0:03:54.950 І він з'являється з паралельного всесвіту. 0:03:55.050,0:03:58.963 З'явись! З'явись! З'явись! [br]Це приголомшливо! 0:03:59.806,0:04:04.500 Отже, найцікавіше про змінну [br]"mouseIsPressed" 0:04:04.500,0:04:07.254 це те, що вона виконується в залежності[br]від дій користувача, 0:04:07.254,0:04:09.523 а не від дій нашої програми. 0:04:09.523,0:04:13.362 і так як функція "draw"[br]викликається повторювано знову і знову, 0:04:13.362,0:04:16.004 результат нашої програми буде змінюватись[br]з плином часу. 0:04:16.004,0:04:17.684 з невеликим вводом даних від користувача. 0:04:18.605,0:04:22.264 Разом з оператором "mouseIsPressed"[br]та змінною "mouseIsPressed", 0:04:22.264,0:04:23.201 ви маєте все, що вам потрібно 0:04:23.301,0:04:26.427 щоб зробити дивовижні речі такі як кнопки,[br]та прогами, що малюють. 0:04:26.566,0:04:32.606 Переклад на українську мову виконав Соломаха Іван, Благодійний фонд "MagneticOne.org"