У попередньому відео, ми показали як
ви можете мультиплікувати м'яч, щоб він відскакував від стін
використовуючи функцію "draw" та умовні оператори "if".
Пригадаймо все.
Спочатку, ми визначаємо початкові змінні для визначення розташування і швидкості м'яча.
Тоді, у фінкції "draw", що є спеціальною функцією
яка викликається кожного разу, коли виконується програма,
ми змінюємо колір фону і малюємо еліпс в редакторі
і визначаємо розташування цього еліпса на основі змінних "position"
та "speed" і як вони впливають один на одного.
Тепер, без умовного оператора "if"
наш м'яч буде просто безперервно рухатись
доки ми не натиснемо кнопку "перезапустити".
Тому ми додали 2 умовних оператори "if" тут знизу, щоб перевірити і побачити
чи був м'яч близько до правої сторони екрану
або до лівої сторони екрану.
І якщо так, ми змінюєм швидкість на додатнє або від'ємне значення
так, щоб м'яч міг просто відскакувати назад.
Отже, тепер у нас є просто м'яч, що відскакуватиме вічно, вперед і назад.
Це було досить круто
і насправді існує ще багато класних анімацій
які ми можемо використати.
А зараз, я хочу додати інтерфейс користувача до цієї програми.
Погляньте, прямо зараз, ця програма виглядає як Телешоу.
Якщо ви поділились нею зі своїми друзями,
і вони не знають як програмувати,
вони не зможуть з нею взаємодіяти.
Все, що вони могли б робити - це спостерігати, що є досить непогано,
але було б трохи краще, якби вони могли б зробити хоть щось.
Що ж, спробуймо надати користувачу способи управління нею.
Пам'ятаєте, раніше ми дізналися
про дві спеціальні глобальні змінні, що називаються "mouseX" і "mouseY".
Вони повертають числа,
що вказують нам на поточне розташування миші користувача
і вони є хорошим способом, щоб зробити програму більш інтерактивною.
Тож, подивімось як ми можем використати їх.
Що ж, нам потрібно використати їх десь всередині функції "draw".
Тому що це єдиний код,
що викликається щоразу, коли запускається програма.
Все, що знаходиться за межами функції "draw", викликається тільки один раз,
при першому запуску програми.
Тому, немає сенсу використовувати там змінні "mouseX" та "mouseY".
Користувач не матиме можливості взаємодіяти з нею.
Зараз у функції "draw" ми малюємо м'яч на відстані 200 пікселів від нижньої частини екрана.
Чому б нам не замінити цей параметр змінною "mouseY"?
Оскільки це позиція "Y", чи не так?
В такий спосіб ми додамо "Y" позицію, що залежить від позиції "Y" користувача.
Чи не так? Тож оцініть.
Рухаючи свій курсор вниз і вгору
я можу змінювати лінію уздовж якої рухається м'яч.
Це досить не погано.
Але я хочу, також використати "mouseX" Отже, як мені це зробити?
А чому б нам не створити ще один м'яч
і матимемо м'ячі, що рухатимуться у протилежних напрямках: вгору та вниз.
І ми матимемо елемент для користувацького управління позицією "X".
Таким чином, ми просто зробимо навпаки. Еліпсу присвоїмо параметри: mouseX, position, 50, 50.
Отже, погляньте.
У мене є два м'ячі, які я контролюю, і вони рухаються в перпендикулярних напрямках.
Але, я все ще не задоволена. Я хочу, надати користувачеві ще більший контроль.
Я хочу надати користувачу здатність запускати другий м'яч.
Щоб фактично створювати його клацаючи мишею.
Тоді мені потрібно з'ясувати
як повідомити, що користувач клацає мишею.
На щастя, для цього у нас є супер спеціальна логічна змінна.
Вона називається "mouseIsPressed" і ми можемо використати її в операторі "if".
Що ж, погляньмо. Це наш другий м'яч.
То ми можемо написати "if" "mouseIsPressed"
і тоді ми переставимо код еліпса туди.
Отже, те що ми робимо тут,
це говоримо програмі, що ми лише хочемо намалювати цей еліпс
якщо оператор "if" істинний і "mouseIsPressed" буде тільки істинна,
якщо користувач натискає мишею.
Отже, спробуймо. Та дааам!
Тож тепер я можу змусити м'яч з'являтися кожного разу, коли я натискаю клавішу миші.
І він з'являється з паралельного всесвіту.
З'явись! З'явись! З'явись! Це приголомшливо!
Отже, найцікавіше про змінну "mouseIsPressed"
це те, що вона виконується в залежності від дій користувача,
а не від дій нашої програми.
і так як функція "draw" викликається повторювано знову і знову,
результат нашої програми буде змінюватись з плином часу.
з невеликим вводом даних від користувача.
Разом з оператором "mouseIsPressed" та змінною "mouseIsPressed",
ви маєте все, що вам потрібно
щоб зробити дивовижні речі такі як кнопки, та прогами, що малюють.
Переклад на українську мову виконав Соломаха Іван, Благодійний фонд "MagneticOne.org"