Урок 31. Space Invaders 1 — корабель
Урок 31. Space Invaders 1 — корабель
Section titled “Урок 31. Space Invaders 1 — корабель”Тривалість: 45–60 хв Рівень: Game Developer
🎯 Місія
Section titled “🎯 Місія”Почни великий проєкт: створи керований космічний корабель.
🧠 Ключова ідея
Section titled “🧠 Ключова ідея”class Player: def __init__(self): self.rect = pygame.Rect(375, 520, 50, 40) self.speed = 6💡 Пояснення простою мовою
Section titled “💡 Пояснення простою мовою”Ми створюємо «пульт керування» для нашого корабля. Клас Player — це як кресленик (рецепт): він описує, як виглядає корабель і як швидко він їздить.
💡 Аналогія: Уяви Lego-набір.
class Player— це інструкція: «візьми прямокутник 50×40, постав на координати (375, 520), дай швидкість 6». З цієї інструкції можна зібрати скільки завгодно кораблів.
🧩 Розбираємо по рядках
Section titled “🧩 Розбираємо по рядках”class Player:— створюємо новий «тип об’єкта» з назвою Player;def __init__(self):— це «будівник», який запускається, коли ми пишемоPlayer();self.rect = pygame.Rect(375, 520, 50, 40)— прямокутник корабля: x=375, y=520, ширина=50, висота=40;self.speed = 6— корабель рухається на 6 пікселів за кадр.
✏️ Основні завдання
Section titled “✏️ Основні завдання”- Вікно та game loop.
🙋 Підказка: використай структуру з уроку 16 —
pygame.init(),set_mode, циклwhile running. - Корабель.
🙋 Підказка: створи клас
Player, намалюйself.rectчерезpygame.draw.rect. - Рух ліворуч/праворуч.
🙋 Підказка: читай клавіатуру через
pygame.key.get_pressed()та змінюйself.rect.x. - Межі екрана.
🙋 Підказка: якщо
self.rect.x < 0— не дозволяй рухатися вліво; якщоself.rect.right > 800— вправо.
⭐ Challenge
Section titled “⭐ Challenge”Додай власний sprite корабля або намалюй корабель фігурами.
🧪 Перед запуском
Section titled “🧪 Перед запуском”Хоча б раз за урок спробуй передбачити результат коду до запуску. Після запуску порівняй прогноз із реальністю.
🐞 Debug Mission
Section titled “🐞 Debug Mission”Навмисно зламай одну частину програми. Прочитай traceback або спостережи неправильну поведінку, знайди причину й виправ її.
✅ Урок завершено, якщо Марко може
Section titled “✅ Урок завершено, якщо Марко може”- пояснити головну ідею своїми словами;
- виконати основні завдання без копіювання готового рішення;
- змінити програму під нову вимогу;
- знайти й виправити хоча б одну власну помилку.
🏠 Домашня місія
Section titled “🏠 Домашня місія”Покращ Challenge однією власною ідеєю. Перед кодом сформулюй її одним реченням.
💡 Підказка для дорослого
Section titled “💡 Підказка для дорослого”Не виправляйте код одразу. Краще запитайте: «Що ти очікував? Що сталося? Який рядок за це відповідає? Що можна перевірити?»