Більше взаємодії з мишею (відео версія)
-
0:01 - 0:02У попередньому відео, ми показали як
-
0:02 - 0:05ви можете мультиплікувати м'яч,
щоб він відскакував від стін -
0:05 - 0:07використовуючи функцію "draw"
та умовні оператори "if". -
0:07 - 0:08Пригадаймо все.
-
0:08 - 0:12Спочатку, ми визначаємо початкові змінні
для визначення розташування і швидкості м'яча. -
0:12 - 0:15Тоді, у фінкції "draw",
що є спеціальною функцією -
0:15 - 0:17яка викликається кожного разу, коли
виконується програма, -
0:17 - 0:21ми змінюємо колір фону
і малюємо еліпс в редакторі -
0:21 - 0:24і визначаємо розташування цього еліпса
на основі змінних "position" -
0:24 - 0:27та "speed"
і як вони впливають один на одного. -
0:27 - 0:29Тепер, без умовного оператора "if"
-
0:29 - 0:31наш м'яч буде просто безперервно рухатись
-
0:31 - 0:33доки ми не натиснемо кнопку "перезапустити".
-
0:33 - 0:37Тому ми додали 2 умовних оператори "if"
тут знизу, щоб перевірити і побачити -
0:37 - 0:39чи був м'яч близько до правої сторони екрану
-
0:39 - 0:40або до лівої сторони екрану.
-
0:40 - 0:43І якщо так, ми змінюєм швидкість на
додатнє або від'ємне значення -
0:43 - 0:45так, щоб м'яч
міг просто відскакувати назад. -
0:45 - 0:49Отже, тепер у нас є просто м'яч,
що відскакуватиме вічно, вперед і назад. -
0:50 - 0:51Це було досить круто
-
0:51 - 0:52і насправді існує ще багато
класних анімацій -
0:52 - 0:54які ми можемо використати.
-
0:54 - 0:57А зараз, я хочу додати інтерфейс
користувача до цієї програми. -
0:57 - 1:00Погляньте, прямо зараз,
ця програма виглядає як Телешоу. -
1:00 - 1:01Якщо ви поділились нею зі своїми друзями,
-
1:01 - 1:03і вони не знають як
програмувати, -
1:03 - 1:05вони не зможуть з нею взаємодіяти.
-
1:05 - 1:07Все, що вони могли б робити - це
спостерігати, що є досить непогано, -
1:07 - 1:10але було б трохи краще, якби
вони могли б зробити хоть щось. -
1:10 - 1:13Що ж, спробуймо надати користувачу
способи управління нею. -
1:13 - 1:15Пам'ятаєте, раніше ми дізналися
-
1:15 - 1:20про дві спеціальні глобальні змінні,
що називаються "mouseX" і "mouseY". -
1:21 - 1:23Вони повертають числа,
-
1:23 - 1:26що вказують нам на поточне розташування
миші користувача -
1:26 - 1:28і вони є хорошим способом,
щоб зробити програму більш інтерактивною. -
1:29 - 1:31Тож, подивімось як ми можем
використати їх. -
1:31 - 1:34Що ж, нам потрібно використати їх
десь всередині функції "draw". -
1:35 - 1:36Тому що це єдиний код,
-
1:36 - 1:39що викликається щоразу,
коли запускається програма. -
1:39 - 1:43Все, що знаходиться за межами функції "draw",
викликається тільки один раз, -
1:43 - 1:45при першому запуску програми.
-
1:45 - 1:48Тому, немає сенсу використовувати
там змінні "mouseX" та "mouseY". -
1:48 - 1:50Користувач не матиме можливості
взаємодіяти з нею. -
1:51 - 1:57Зараз у функції "draw" ми малюємо м'яч на відстані
200 пікселів від нижньої частини екрана. -
1:57 - 2:00Чому б нам не замінити цей параметр
змінною "mouseY"? -
2:01 - 2:02Оскільки це позиція "Y", чи не так?
-
2:02 - 2:08В такий спосіб ми додамо "Y" позицію, що
залежить від позиції "Y" користувача. -
2:08 - 2:10Чи не так? Тож оцініть.
-
2:10 - 2:12Рухаючи свій курсор вниз і вгору
-
2:12 - 2:14я можу змінювати лінію
уздовж якої рухається м'яч. -
2:14 - 2:15Це досить не погано.
-
2:16 - 2:20Але я хочу, також використати "mouseX"
Отже, як мені це зробити? -
2:20 - 2:22А чому б нам не створити ще один м'яч
-
2:22 - 2:26і матимемо м'ячі, що рухатимуться у
протилежних напрямках: вгору та вниз. -
2:27 - 2:31І ми матимемо елемент для користувацького
управління позицією "X". -
2:31 - 2:38Таким чином, ми просто зробимо навпаки.
Еліпсу присвоїмо параметри: mouseX, position, 50, 50. -
2:40 - 2:42Отже, погляньте.
-
2:42 - 2:49У мене є два м'ячі, які я контролюю,
і вони рухаються в перпендикулярних напрямках. -
2:49 - 2:53Але, я все ще не задоволена. Я хочу,
надати користувачеві ще більший контроль. -
2:53 - 2:57Я хочу надати користувачу здатність
запускати другий м'яч. -
2:57 - 3:01Щоб фактично створювати його клацаючи
мишею. -
3:02 - 3:04Тоді мені потрібно з'ясувати
-
3:04 - 3:07як повідомити, що користувач
клацає мишею. -
3:08 - 3:13На щастя, для цього у нас є супер спеціальна
логічна змінна. -
3:13 - 3:18Вона називається "mouseIsPressed" і ми
можемо використати її в операторі "if". -
3:19 - 3:22Що ж, погляньмо. Це наш другий м'яч.
-
3:22 - 3:27То ми можемо написати "if"
"mouseIsPressed" -
3:28 - 3:31і тоді ми переставимо код еліпса туди.
-
3:32 - 3:34Отже, те що ми робимо тут,
-
3:34 - 3:39це говоримо програмі, що ми лише хочемо
намалювати цей еліпс -
3:39 - 3:44якщо оператор "if" істинний і
"mouseIsPressed" буде тільки істинна, -
3:44 - 3:45якщо користувач натискає мишею.
-
3:45 - 3:49Отже, спробуймо. Та дааам!
-
3:50 - 3:53Тож тепер я можу змусити м'яч з'являтися
кожного разу, коли я натискаю клавішу миші. -
3:53 - 3:55І він з'являється з паралельного всесвіту.
-
3:55 - 3:59З'явись! З'явись! З'явись!
Це приголомшливо! -
4:00 - 4:04Отже, найцікавіше про змінну
"mouseIsPressed" -
4:04 - 4:07це те, що вона виконується в залежності
від дій користувача, -
4:07 - 4:10а не від дій нашої програми.
-
4:10 - 4:13і так як функція "draw"
викликається повторювано знову і знову, -
4:13 - 4:16результат нашої програми буде змінюватись
з плином часу. -
4:16 - 4:18з невеликим вводом даних від користувача.
-
4:19 - 4:22Разом з оператором "mouseIsPressed"
та змінною "mouseIsPressed", -
4:22 - 4:23ви маєте все, що вам потрібно
-
4:23 - 4:26щоб зробити дивовижні речі такі як кнопки,
та прогами, що малюють. -
4:27 - 4:33Переклад на українську мову виконав Соломаха Іван, Благодійний фонд "MagneticOne.org"
- Title:
- Більше взаємодії з мишею (відео версія)
- Description:
-
Це просто демонстрація екрану нашої інтерактивної бесіди щодо кодування, готової щоб полегшити створення перекладу і субтитрів. Краще дивитися наші бесіди тут:
https://www.khanacademy.org/cs/programming/ - Video Language:
- English
- Duration:
- 04:29
Julia edited Ukrainian subtitles for More Mouse Interaction (Video Version) | ||
Julia edited Ukrainian subtitles for More Mouse Interaction (Video Version) | ||
Іван Соломаха edited Ukrainian subtitles for More Mouse Interaction (Video Version) | ||
Иван Соломаха edited Ukrainian subtitles for More Mouse Interaction (Video Version) | ||
Иван Соломаха edited Ukrainian subtitles for More Mouse Interaction (Video Version) | ||
Иван Соломаха edited Ukrainian subtitles for More Mouse Interaction (Video Version) | ||
Иван Соломаха edited Ukrainian subtitles for More Mouse Interaction (Video Version) | ||
Іван Соломаха edited Ukrainian subtitles for More Mouse Interaction (Video Version) |