Створюємо нові ігри на скретч Під водою – це гра, де ми керуватимемо великою акулою, яка полюватиме за різними малими рибками.
Ігри на скретч: Під водою
Зазвичай, всі ігри, пов’язані з рибами, однотипні. Сидять рибалки на причалі, насаджують черв’ячків, закидають вудки й набирають ведро-два за цілий день. Комарів по щоках розмазують. Нудьга.
У цій грі будуть справжні розбірки у маленькому ставку! Ми керуватимемо величезною голодною рибиною, яка пожирає… ні, не рибалок, не так все кровожерливо. Маленьких беззахисних рибок.
Мета гри – з’їсти все, що плаває і квакає навколо.
Крок 1: Акула, що мешкає під водою
1: Створімо новий проєкт, вилучаємо кота. Коти не вміють плавати.
2: Додаймо нове тло – Underwater1 (підводний світ)
3: Створімо новий спрайт в вигляді Акули, можеш навіть назвати її Акула. Візьми синю акулу з готових спрайтів, скачай картинку зеленої акули або намалюй спрайт самостійно. Нам знадобиться акула з відкритим ротом, щоб туди залітали різні рибини. (Саме тому інша акула зі скретчу нам не підійде, бо не вміє відкривати рота і показувати зубки). як на малюнку.
Якщо ти завантажив картинки, то імпортуємо для акули образи голодної риби через «Образи – Новий образ». Їх два – рибка з відкритим ротом і без. Видаляємо порожній костюм.
4: Стиль обертання виставляємо для риболовлі – “Вліво-вправо”.
5: Додаємо скрипт, щоб рибка рухалася за курсором миші. Пам’ятаєте, як ми робили для Миші, за якою ганявся Котяра? Збери команди самостійно. Нижче є розв’язок, але не спіши, ти зможеш зробити все сам.
Розв’язок
6: Протестуємо. Рибка плаває, слідує за курсором. Але що це відбувається, коли риба наздоганяє курсор? Виглядає, ніби вона збожеволіла. Чи можна зупинити хаотичні конвульсії? Можна та легко!
7: Я б на вашому місці не раділа. А поекспериментувала із цифрами? Бачите ці магічні числа – 10 та 3? Що буде, якщо їх поміняти місцями? Спробуй поставити замість 10-100 чи ще щось.
8: Винесімо числа до змінних. Так легше потім змінювати швидкість риби. Одже, наша перша змінна буде називатись “Швидкість Акули”. Додай таку змінну. Подумай, як краще розмістити в нашому коді ці нові команди
Розв’язок
9: Ідеально! Ми використали нашу змінну за призначенням. Зверни увагу, що тепер нам достатньо змінити її в одному місці, на етапі ініціалізації (блок «Задати швидкість у значення»). А решта вже для нас працюватиме!
Протестуй та збережи
Акула рухається за курсором?
Крок 2: Створення здобичі
1: Створюємо новий спрайт, обравши в папці “Тварини” відповідне зображення маленької рибки. Стиль обертання виставляємо для рибинки – “Вліво-вправо”. Змінимо розмір зображення: поставимо 50, щоб усе було правдоподібним.
2: Створимо змінну “Швидкість риби”, щоб рибка плавала не так швидко, як акула
Створюємо скриптик, за допомогою якого здобич повзатиме по акваріуму. Збери команди до купи (ті, що вже з’єднані, можна не розбирати, вони у правильному порядку)
Розв’язок
3: Запусти проєкт. Чи реально виглядає рух рибки? Яка функція блоку «Якщо на межі, відбити” ? Видали його та подивись, що станеться!
4: Спробуй змінити числа 20 і -20 інші. Як це впливатиме на рух?
Протестуй та збережи
Рибка плаває в різні сторони? Що відбувається, коли рибка допливла до краю екрана ?
Крок 3: Акула їсть дрібноту
1: Поки що голодна риба ніяк не взаємодіє зі здобиччю. Вони дружать. Давай їх посваримо і вони поб’ються!
2: Як тільки велика риба впіймає ротом дрібну, повинні відбутися дві речі: голодна риба закриває пащу і чмокає; маленька рибка зникає в зубастій пащі, а за кілька секунд, о диво, – реінкарнується десь у іншому місці океану.
3: Давай по черзі. Спочатку риба зникне і з’явиться за 3 секунди. У скрипті малої рибки користуємося блоком «торкається кольору» із вкладки «Датчики», щоб виловити той момент, коли відбувається торкання. Обери колір зубів акули, щоб буде впевненими, що рибина торкнулася сама рота, на не хвоста чи лоба акули.
4: Натисни один раз на квадратик у блоці “Торкається” й вибери колір зубів акулки. А потім ще раз, вказавши мишкою на зубату пащу акули.
5: Додаймо зміну образу для рибки, щоб здавалося, ніби акула має обід з різноманітних страв. Також, нехай рибинка реінкарнується десь в іншому місці екрана, наче так і треба
Протестуй та збережи
Здобич зникає, коли торкається зубів акули? А з’являється рибка в новому образі й не в тому ж місці, а у випадковій точці екрана?
6: Голодна риба в нас занадто вихована, і навіть не чавкає, коли лопає здобич. Невже вона добра, наче фея? Та ну як ми могли взагалі таке подумати? Надаймо їй шарму!
Як ми це зробимо, адже про те, що хтось когось з’їв, знає лише маленька беззахисна рибка, яка зникає. Правильно, вона має видати останній “бульк” і передати повідомлення.
Розв’язок
7: А голодна риба повинна відповідно реагувати на цю трагедію. Давай для початку перейменуємо костюми для рибки: той, що з відкритою пащею, назвемо “відкритий рот”. А другий – “Закритий рот”. Третій костюм не дуже й потрібен
8: Додаймо звук chomp (або можна взяти звук bite, який вже є в скретчі) у вкладці “Звуки”. Його буде робити акула, коли когось з’їсть.
9: Додаймо код, щоб змінювати ці милі образи та звук:
Розв’язок
10: Тепер наша рибина – просто пекельна машина з поїдання всього, що рухається навколо! Тільки руху не видно, як у пустелі.
Є два способи плодити населення: можна копіювати вже створений спрайт рибки, з усіма подальшими проблемами його зміни, або скористатися керованим способом – створенням клонів. Перший спосіб очевидний у реалізації – просто клацни правою кнопкою миші по спрайту і натисни «дублювати». Але далі з купою рибок важко працювати…
11: Для клонування теж більш менш легко: для спрайта риби просто перенеси все, що під зеленим прапорцем, під блок «Коли я починаю як клон»
12: А для сцени додай скрипт, який генеруватиме клони в тій кількості, яка нам потрібна
Розв’язок
Протестуй та збережи
Зараз плаває кілька рибок ? Коли акула з’їла рибку відтворюється якийсь звук? акула закриває ротик?
Крок 4: Таймер та час
Основа для гри вже готова. Можна лише додати час, за який треба вполювати якомога більше рибок. І рахунок, щоб змагатися у кількості.
1: Почнімо з часу. Подумай, як впорядкувати такий код:
Розв’язок
2: Додаємо рахунок. Ось такі команди треба додати. Спробуй визначити самі, куди їх треба додати, без підказки.
Протестуй та збережи
Таймер відраховує 30 секунд? Рахунок змінюється, коли рибку з’їли?
Ігри на скретч Під водою
Завдання для крутих: Level Up!
1: Ще одне завдання на розумову діяльність: подумай, що станеться, якщо ми раптом змінимо тло, де будуть предмети такого ж кольору, як паща акули? Як уникнути проблем?
2: Зроби так, щоб рибки рухалися по-різному:
А) задай їм різну швидкість,
Б) кут руху
В) додай нові костюми, щоб рибки були різноманітнішими
Г) не забувай про встановлення Ефектів для рибки – колір, завихрення і т.п. Експериментуй!
Д) Розмір рибки теж можна міняти
Чи стала гра цікавішою, коли у нас усі рибки стали різними, строкатими та спритними?
3: Здобич тікає від акули. Як ви помітили, зараз здобич – це такий собі планктон, який навіть не розуміє, що можна і потрібно гайнути кудись подалі від небезпечних щелеп. Вона просто плаває, доки її не з’їдять. У живій природі все інакше. Спробуй спіймати за хвіст ящірку.
У скретчі немає блоків, які поінформували б про напрям руху якогось із спрайтів. Але можна вказати на відстань до іншого і зробити так, щоб рибка повертала в інший бік. Спробуй додати перевірку на відстань, щоб рибка розвертала, якщо занадто близько до акули
4: Додай бонусні очки за те, якщо акула з’їла одночасно трьох риб!
Як цей момент можна відловити: створюємо змінну підрахунок, щоб підрахувати кількість риб, що плавають наразі в морі.
5: Зробімо повністю протилежну річ: гравець керує тепер не злою голодною рибиною, а дрібною здобиччю. Точніше, тепер це буде не видобуток, а приманка, яка має вижити. І наскільки довго тепер приманка зможе протриматися, не з’їденою?
Не зупиняйся! Ще більше ігор і цікавих завдань на наступних уроках!
Поділися грою з друзями у https://scratch.mit.edu/.