Розв’язання задачі методом поділу на підзадачі
гра “Геікоптер”
Виконання проекту - 7 балів, додаткове завдання + 5 балів
На Гелікоптер нападають Кажани. У нього є 3 життя — він може лише 3 рази
зіткнутися з ворогом. Мета гри – набрати 30 очок.
Оскільки справа відбувається високо в небі, то зафарбуйте тло в блакитний колір, або завантажте тло. Можете намалювати хмари та сонце.
Спрайт Кота видаліть. Додайте спрайт Гелікоптер та спрайт Кажан. (Спарйтів, якіх не має в бібліотеці можно завантажити тут)
Спочатку ми запрограмуємо одного Кажана, а потім просто продублюємо його. Нові кажани будуть містити такі ж скріпти, як і у першого, адже їх поведінка має бути однаковою.
У Гелікоптера має бути 4 костюми з різним ступенем ушкоджень.
Оберіть спрайт Гелікоптер, перейдіть на вкладку Костюми та продублюйте перший костюм Гелікоптера. | |
Інструментом Пензлик намалюйте невеликі пошкодження гелікоптера. | |
Дублюйте другий костюм і додайте ще більше ушкоджень. Можете намалювати білий чи сірий дим. | |
Дублюйте третій костюм Гелікоптера і додайте суперпошкодження |
Спрайти готові, можна програмувати.
Спочатку створіть дві змінні: Очки та Життя. Змінна Очки вестиме підрахунок очок до досягнення 30, а змінна Життя буде показувати життя Гелікоптеру, що залишилися.
Програмуємо Гелікоптер. Створюємо 3 скрипта для Гелікоптера
1 | Перший скрипт встановлює розмір гелікоптера в 2 рази менше звичайного, «одягає» на нього перший костюм і робить Гелікоптер видимим. Далі встановлює початкові значення змінних, переміщає Гелікоптер у лівий нижній кут сцени, в точку (-190; -150), а потім постійно встановлює координату Y Гелікоптера в координату Y миші. В результаті вертикальне положення Гелікоптера задається рухом миші. У горизонтальному напрямку Гелікоптер не рухається. | |
2 | Тепер другий скрипт. Це скрипт перемоги. Весь час (блок завжди) перевіряється, чи дорівнює змінна Очки значення 30. Коли це станеться, Гелікоптер закричить: "Перемога!" | |
3 | Третій скрипт Гелікоптеру змінює його костюм залежно від кількості життів. Якщо у Гелікоптера 3 життя, він без пошкоджень; якщо 2 життя, то він має небагато пошкоджень; якщо 1, він ледве летить; а якщо 0, то він падає та зупиняє виконання програми. |
Тепер запрограмуємо Кажана, у нього 4 скрипти.
1 | Перший скрипт Кажана зменшує його в 2 рази, переносить у випадкову точку до правої межі сцени, трохи чекає і завжди змінює Х на -3, повільно переміщаючи Кажана вліво. | |
2 | Другий скрипт завжди чекає, поки Кажан не торкнеться лівого краю сцени. У цьому випадку він збільшує змінну Очки на 1 і знову «телепортує» Кажана в випадкову точку до правого кордону сцени. | |
3 | Цей скрипт завжди чекає, поки Кажан не торкнеться Гелікоптера. Коли це станеться, змінна Життя зменшується на 1. Двосекундна затримка потрібна для того, щоб за один дотик забиралося лише одне життя. | |
4 | Це скрипт з умовою перемоги, він стежить значення змінної Очки. Якщо її значення зрівняється з 30, то кажани заноють: «Знову не зловили!» | Створіть самостійно! |
Протестуємо роботу програми. Грати з одним противником дуже легко та нецікаво.
Давайте додамо ще трохи кажанів, щоб їх стало 5.
Змініть у першому скрипті кожного з Кажанів час затримки у блоці чекати. У першого Кажана має бути 1 секунда, у другого - 2 секунди, і так далі. Тепер вони будуть стартувати по черзі, а не всім гуртом.
Протестуйте гру та збережіть її.
Внесення змін:
Джерело: https://tiei.ru/wp-content/uploads/Scratch-dlya-yunyih-programmistov.pdf