Тема 5: «Алгоритми та програми». Урок № 59. (До § 37)
Розв’язання завдань з анімаціями
Інтерактивний план-конспект уроку для 8 класу НУШ
🎯 Мета уроку
- Освітня: закріпити знання та вміння учнів зі створення анімацій у `tkinter` шляхом розв'язання різноманітних практичних завдань; навчити аналізувати та модифікувати готовий код.
- Розвивальна: розвивати навички програмування, критичне мислення, вміння працювати з помилками та шукати ефективні рішення для створення анімаційних ефектів.
- Виховна: виховувати відповідальність, самостійність у роботі, сприяти розвитку творчих здібностей та інтересу до вивчення інформатики.
✅ Очікувані результати
Після уроку учні зможуть:
- Створювати анімації з рухом об'єктів та послідовною зміною зображень.
- Реалізовувати реакцію об'єктів на події введення (клавіатура).
- Використовувати функцію `midpoint` для обчислення координат центру об'єкта.
- Модифікувати код для зміни властивостей анімації (колір, швидкість, напрямок).
- Вирішувати типові завдання зі створення анімаційних програм у Python.
📊 Групи результатів (НУШ)
Візуалізація важливості груп результатів для цього уроку.
Учень / учениця:
ГР1 – працює з інформацією, даними, моделями;
ГР2 – створює інформаційні продукти;
ГР3 – працює в цифровому середовищі;
ГР4 – безпечно та відповідально працює з інформаційними технологіями.
📚 Тип уроку
Урок узагальнення та систематизації знань, застосування вмінь і навичок.
💻 Обладнання та ПЗ
- Персональні комп'ютери з встановленим Python та `tkinter`.
- Середовище розробки (IDLE, VS Code).
- Проєктор або інтерактивна дошка.
🔗 Міжпредметні зв'язки
- Математика (координатна площина, геометрія).
- Фізика (рух, відбиття, траєкторії).
- Мистецтво (дизайн анімації, візуальні ефекти).
ПОВТОРЮЄМО
Актуалізація опорних знань
- Які функції призначено для переміщення об'єкта по полотну?
- Як запрограмувати реакцію об'єкта на подію?
- Поясніть призначення аргументів методу `canvas.bind('<KeyPress-Up>', step)` .
- Як створити анімацію шляхом послідовної зміни зображень?
- Який метод використовується для оновлення вікна `tkinter`?

Практичний блок уроку
Питання 1: Множинний вибір (радіокнопки)
Який параметр функції `canvas.move(item, x, y)` відповідає за зміщення по вертикалі?
Питання 2: Множинний вибір (чекбокси)
Які методи можна використовувати для створення анімації в `tkinter`?
Питання 3: Зіставлення
Зіставте метод `tkinter` з його описом:
Tk()
Canvas()
.mainloop()
.create_oval()
Завдання для самостійного виконання
- Розширте програму "Vprava37", додавши можливість змінювати колір сліду круга при натисканні інших клавіш (наприклад, "C" для синього, "G" для зеленого).
- Створіть програму, де два об'єкти рухаються одночасно, і керувати ними можна незалежно за допомогою різних наборів клавіш.
- Реалізуйте анімацію "пінг-понгу", де м'ячик відбивається від чотирьох стінок і змінює напрямок руху.
- Модифікуйте приклад з анімацією метелика, щоб він рухався не тільки по колу, а й реагував на клавіші управління курсором.
Перевірка знань
Натисніть на картку, щоб побачити відповідь.
-
1. Який модуль Python використовується для створення графічних інтерфейсів та анімацій?Модуль `tkinter`.
-
2. Що таке `event.keysym` і для чого він використовується?`event.keysym` – це властивість об'єкта `event`, яка містить символ натиснутої клавіші.
Використовується для визначення, яка клавіша була натиснута, щоб програмувати відповідну реакцію. -
3. Як обчислити центр об'єкта, якщо відомі його координати `x1, y1, x2, y2`?Центр обчислюється як `[(x1+x2)/2, (y1+y2)/2]`.
-
4. Яке призначення методу `.after(час, функція)`?
Наприклад, `root.after(час, функція)` .Метод `.after()` викликає задану `функцію` через вказаний `час` (у мілісекундах). Це дозволяє створювати затримки та циклічно викликати функції для анімації.
Наприклад, `root.after()` . -
5. Який метод `Canvas` дозволяє залишати "слід" за рухомим об'єктом?Для залишення сліду можна використовувати метод `.create_line()`, малюючи відрізки між послідовними центрами рухомого об'єкта.
Наприклад, `canvas.create_line()` . -
6. Чому важливо використовувати `tk.update()` або `root.after()` в анімаціях?Методи .update() та .after() необхідні для оновлення відображення вікна та полотна.
Без них зміни в координатах об'єктів не будуть відображатися на екрані, і анімація не відбуватиметься.
Домашнє завдання
1. Теоретична частина:
- Повторити § 37 (стор. 241-246).
2. Практична частина:
- Виконати вправу № 37 (стор. 245-246).
3. Завдання за бажанням (для закріплення):
- Інтерактивна платформа IZZI (8 клас) до § 37: https://ua.izzi.digital/DOS/1183864/1337134.html

Додаткові матеріали
- Техніка безпеки
- Оцінювання учнів та учениць на уроках інформатики
- Підручник з інформатики для 8 класу (§ 37, стор. 241-246)
- Інтерактивна платформа IZZI (8 клас)
- Інтерактивна платформа IZZI (8 клас) до § 37: https://ua.izzi.digital/DOS/1183864/1337134.html