[Script Info] Title: [Events] Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text Dialogue: 0,0:00:01.08,0:00:02.12,Default,,0000,0000,0000,,У попередньому відео, ми показали як Dialogue: 0,0:00:02.12,0:00:04.59,Default,,0000,0000,0000,,ви можете мультиплікувати м'яч,\Nщоб він відскакував від стін Dialogue: 0,0:00:04.59,0:00:07.18,Default,,0000,0000,0000,,використовуючи функцію "draw"\Nта умовні оператори "if". Dialogue: 0,0:00:07.18,0:00:08.22,Default,,0000,0000,0000,,Пригадаймо все. Dialogue: 0,0:00:08.49,0:00:11.100,Default,,0000,0000,0000,,Спочатку, ми визначаємо початкові змінні\Nдля визначення розташування і швидкості м'яча. Dialogue: 0,0:00:12.20,0:00:14.74,Default,,0000,0000,0000,,Тоді, у фінкції "draw",\Nщо є спеціальною функцією Dialogue: 0,0:00:14.74,0:00:17.20,Default,,0000,0000,0000,,яка викликається кожного разу, коли \Nвиконується програма, Dialogue: 0,0:00:17.29,0:00:20.73,Default,,0000,0000,0000,,ми змінюємо колір фону\Nі малюємо еліпс в редакторі Dialogue: 0,0:00:20.73,0:00:23.54,Default,,0000,0000,0000,,і визначаємо розташування цього еліпса\Nна основі змінних "position" Dialogue: 0,0:00:23.54,0:00:26.85,Default,,0000,0000,0000,,та "speed"\Nі як вони впливають один на одного. Dialogue: 0,0:00:27.47,0:00:28.90,Default,,0000,0000,0000,,Тепер, без умовного оператора "if" Dialogue: 0,0:00:28.90,0:00:31.12,Default,,0000,0000,0000,,наш м'яч буде просто безперервно рухатись Dialogue: 0,0:00:31.12,0:00:32.92,Default,,0000,0000,0000,,доки ми не натиснемо кнопку "перезапустити". Dialogue: 0,0:00:32.92,0:00:36.82,Default,,0000,0000,0000,,Тому ми додали 2 умовних оператори "if" \Nтут знизу, щоб перевірити і побачити Dialogue: 0,0:00:36.82,0:00:39.13,Default,,0000,0000,0000,,чи був м'яч близько до правої сторони екрану Dialogue: 0,0:00:39.13,0:00:40.33,Default,,0000,0000,0000,,або до лівої сторони екрану. Dialogue: 0,0:00:40.33,0:00:43.26,Default,,0000,0000,0000,,І якщо так, ми змінюєм швидкість на\Nдодатнє або від'ємне значення Dialogue: 0,0:00:43.26,0:00:45.44,Default,,0000,0000,0000,,так, щоб м'яч\Nміг просто відскакувати назад. Dialogue: 0,0:00:45.44,0:00:49.46,Default,,0000,0000,0000,,Отже, тепер у нас є просто м'яч,\Nщо відскакуватиме вічно, вперед і назад. Dialogue: 0,0:00:49.96,0:00:51.10,Default,,0000,0000,0000,,Це було досить круто Dialogue: 0,0:00:51.10,0:00:52.40,Default,,0000,0000,0000,,і насправді існує ще багато \Nкласних анімацій Dialogue: 0,0:00:52.40,0:00:53.80,Default,,0000,0000,0000,,які ми можемо використати. Dialogue: 0,0:00:53.80,0:00:57.12,Default,,0000,0000,0000,,А зараз, я хочу додати інтерфейс\Nкористувача до цієї програми. Dialogue: 0,0:00:57.48,0:00:59.94,Default,,0000,0000,0000,,Погляньте, прямо зараз,\Nця програма виглядає як Телешоу. Dialogue: 0,0:01:00.09,0:01:01.31,Default,,0000,0000,0000,,Якщо ви поділились нею зі своїми друзями, Dialogue: 0,0:01:01.49,0:01:03.12,Default,,0000,0000,0000,,і вони не знають як\Nпрограмувати, Dialogue: 0,0:01:03.12,0:01:04.82,Default,,0000,0000,0000,,вони не зможуть з нею взаємодіяти. Dialogue: 0,0:01:04.82,0:01:07.44,Default,,0000,0000,0000,,Все, що вони могли б робити - це\Nспостерігати, що є досить непогано, Dialogue: 0,0:01:07.44,0:01:09.93,Default,,0000,0000,0000,,але було б трохи краще, якби\Nвони могли б зробити хоть щось. Dialogue: 0,0:01:10.19,0:01:12.74,Default,,0000,0000,0000,,Що ж, спробуймо надати користувачу \Nспособи управління нею. Dialogue: 0,0:01:13.26,0:01:15.34,Default,,0000,0000,0000,,Пам'ятаєте, раніше ми дізналися Dialogue: 0,0:01:15.34,0:01:20.03,Default,,0000,0000,0000,,про дві спеціальні глобальні змінні,\Nщо називаються "mouseX" і "mouseY". Dialogue: 0,0:01:20.90,0:01:22.71,Default,,0000,0000,0000,,Вони повертають числа, Dialogue: 0,0:01:22.71,0:01:25.79,Default,,0000,0000,0000,,що вказують нам на поточне розташування\Nмиші користувача Dialogue: 0,0:01:25.79,0:01:27.86,Default,,0000,0000,0000,,і вони є хорошим способом,\Nщоб зробити програму більш інтерактивною. Dialogue: 0,0:01:28.87,0:01:30.81,Default,,0000,0000,0000,,Тож, подивімось як ми можем \Nвикористати їх. Dialogue: 0,0:01:30.81,0:01:34.20,Default,,0000,0000,0000,,Що ж, нам потрібно використати їх\Nдесь всередині функції "draw". Dialogue: 0,0:01:34.63,0:01:36.15,Default,,0000,0000,0000,,Тому що це єдиний код, Dialogue: 0,0:01:36.18,0:01:38.58,Default,,0000,0000,0000,,що викликається щоразу,\Nколи запускається програма. Dialogue: 0,0:01:39.27,0:01:42.56,Default,,0000,0000,0000,,Все, що знаходиться за межами функції "draw",\Nвикликається тільки один раз, Dialogue: 0,0:01:42.56,0:01:44.57,Default,,0000,0000,0000,,при першому запуску програми. Dialogue: 0,0:01:44.62,0:01:47.59,Default,,0000,0000,0000,,Тому, немає сенсу використовувати\Nтам змінні "mouseX" та "mouseY". Dialogue: 0,0:01:47.59,0:01:50.24,Default,,0000,0000,0000,,Користувач не матиме можливості\Nвзаємодіяти з нею. Dialogue: 0,0:01:50.86,0:01:56.77,Default,,0000,0000,0000,,Зараз у функції "draw" ми малюємо м'яч на відстані\N200 пікселів від нижньої частини екрана. Dialogue: 0,0:01:56.97,0:02:00.20,Default,,0000,0000,0000,,Чому б нам не замінити цей параметр\Nзмінною "mouseY"? Dialogue: 0,0:02:00.94,0:02:02.44,Default,,0000,0000,0000,,Оскільки це позиція "Y", чи не так? Dialogue: 0,0:02:02.44,0:02:07.83,Default,,0000,0000,0000,,В такий спосіб ми додамо "Y" позицію, що\Nзалежить від позиції "Y" користувача. Dialogue: 0,0:02:07.83,0:02:09.51,Default,,0000,0000,0000,,Чи не так? Тож оцініть. Dialogue: 0,0:02:09.83,0:02:11.66,Default,,0000,0000,0000,,Рухаючи свій курсор вниз і вгору Dialogue: 0,0:02:11.66,0:02:14.23,Default,,0000,0000,0000,,я можу змінювати лінію\Nуздовж якої рухається м'яч. Dialogue: 0,0:02:14.23,0:02:14.94,Default,,0000,0000,0000,,Це досить не погано. Dialogue: 0,0:02:15.85,0:02:19.91,Default,,0000,0000,0000,,Але я хочу, також використати "mouseX" \NОтже, як мені це зробити? Dialogue: 0,0:02:19.91,0:02:22.07,Default,,0000,0000,0000,,А чому б нам не створити ще один м'яч Dialogue: 0,0:02:22.07,0:02:26.27,Default,,0000,0000,0000,,і матимемо м'ячі, що рухатимуться у \Nпротилежних напрямках: вгору та вниз. Dialogue: 0,0:02:26.99,0:02:31.04,Default,,0000,0000,0000,,І ми матимемо елемент для користувацького\Nуправління позицією "X". Dialogue: 0,0:02:31.04,0:02:38.27,Default,,0000,0000,0000,,Таким чином, ми просто зробимо навпаки.\NЕліпсу присвоїмо параметри: mouseX, position, 50, 50. Dialogue: 0,0:02:39.97,0:02:41.97,Default,,0000,0000,0000,,Отже, погляньте. Dialogue: 0,0:02:41.97,0:02:48.54,Default,,0000,0000,0000,,У мене є два м'ячі, які я контролюю,\Nі вони рухаються в перпендикулярних напрямках. Dialogue: 0,0:02:48.73,0:02:53.43,Default,,0000,0000,0000,,Але, я все ще не задоволена. Я хочу, \Nнадати користувачеві ще більший контроль. Dialogue: 0,0:02:53.43,0:02:56.84,Default,,0000,0000,0000,,Я хочу надати користувачу здатність\Nзапускати другий м'яч. Dialogue: 0,0:02:56.84,0:03:00.90,Default,,0000,0000,0000,,Щоб фактично створювати його клацаючи\Nмишею. Dialogue: 0,0:03:02.00,0:03:03.62,Default,,0000,0000,0000,,Тоді мені потрібно з'ясувати Dialogue: 0,0:03:03.62,0:03:06.76,Default,,0000,0000,0000,,як повідомити, що користувач \Nклацає мишею. Dialogue: 0,0:03:07.76,0:03:12.52,Default,,0000,0000,0000,,На щастя, для цього у нас є супер спеціальна \Nлогічна змінна. Dialogue: 0,0:03:12.67,0:03:18.34,Default,,0000,0000,0000,,Вона називається "mouseIsPressed" і ми\Nможемо використати її в операторі "if". Dialogue: 0,0:03:19.13,0:03:21.71,Default,,0000,0000,0000,,Що ж, погляньмо. Це наш другий м'яч. Dialogue: 0,0:03:21.80,0:03:26.92,Default,,0000,0000,0000,,То ми можемо написати "if" \N"mouseIsPressed" Dialogue: 0,0:03:28.33,0:03:30.100,Default,,0000,0000,0000,,і тоді ми переставимо код еліпса туди. Dialogue: 0,0:03:31.90,0:03:33.93,Default,,0000,0000,0000,,Отже, те що ми робимо тут, Dialogue: 0,0:03:33.93,0:03:39.30,Default,,0000,0000,0000,,це говоримо програмі, що ми лише хочемо\Nнамалювати цей еліпс Dialogue: 0,0:03:39.30,0:03:43.60,Default,,0000,0000,0000,,якщо оператор "if" істинний і\N"mouseIsPressed" буде тільки істинна, Dialogue: 0,0:03:43.60,0:03:45.48,Default,,0000,0000,0000,,якщо користувач натискає мишею. Dialogue: 0,0:03:45.48,0:03:49.22,Default,,0000,0000,0000,,Отже, спробуймо. Та дааам! Dialogue: 0,0:03:49.70,0:03:52.70,Default,,0000,0000,0000,,Тож тепер я можу змусити м'яч з'являтися\Nкожного разу, коли я натискаю клавішу миші. Dialogue: 0,0:03:52.70,0:03:54.95,Default,,0000,0000,0000,,І він з'являється з паралельного всесвіту. Dialogue: 0,0:03:55.05,0:03:58.96,Default,,0000,0000,0000,,З'явись! З'явись! З'явись! \NЦе приголомшливо! Dialogue: 0,0:03:59.81,0:04:04.50,Default,,0000,0000,0000,,Отже, найцікавіше про змінну \N"mouseIsPressed" Dialogue: 0,0:04:04.50,0:04:07.25,Default,,0000,0000,0000,,це те, що вона виконується в залежності\Nвід дій користувача, Dialogue: 0,0:04:07.25,0:04:09.52,Default,,0000,0000,0000,,а не від дій нашої програми. Dialogue: 0,0:04:09.52,0:04:13.36,Default,,0000,0000,0000,,і так як функція "draw"\Nвикликається повторювано знову і знову, Dialogue: 0,0:04:13.36,0:04:16.00,Default,,0000,0000,0000,,результат нашої програми буде змінюватись\Nз плином часу. Dialogue: 0,0:04:16.00,0:04:17.68,Default,,0000,0000,0000,,з невеликим вводом даних від користувача. Dialogue: 0,0:04:18.60,0:04:22.26,Default,,0000,0000,0000,,Разом з оператором "mouseIsPressed"\Nта змінною "mouseIsPressed", Dialogue: 0,0:04:22.26,0:04:23.20,Default,,0000,0000,0000,,ви маєте все, що вам потрібно Dialogue: 0,0:04:23.30,0:04:26.43,Default,,0000,0000,0000,,щоб зробити дивовижні речі такі як кнопки,\Nта прогами, що малюють. Dialogue: 0,0:04:26.57,0:04:32.61,Default,,0000,0000,0000,,Переклад на українську мову виконав Соломаха Іван, Благодійний фонд "MagneticOne.org"