Раздели

Нива и нарастваща трудност

Нива и нарастваща трудност

Урок 5 от 5 · Направи своя игра с MakeCode Arcade
Цъкни, за да започнеш
Раздел AВъведение

Какво ще направим?

Последният урок е за това как една игра продължава да бъде интересна. Вместо да слагаме десет врага в кода, ще напишем функция, която прави враг, и ще я извикваме отново и отново - всеки път с по-голяма скорост, защото нивото се е повишило.
Дай на класа минута да предположи как ще стане, преди да продължиш. Целта е да измислят стъпките сами.
Раздел AАналогия от живота

Рецептата и готвачът

Рецептата за палачинки се пише веднъж, а се ползва всяка неделя. Ако решиш да сложиш по-малко захар, променяш рецептата, не всяка палачинка поотделно. Функцията е рецептата; извикването на функцията е готвенето.
Аналогията прави абстрактното конкретно - задръж на нея, докато класът я схване.
Раздел BКак мисли програмата

Как работи?

алгоритъм
Проследи схемата: кои блокове се изпълняват при старт и кои чакат нещо да се случи.
Функцията е блок с име, който ние сами измисляме. Вътре слагаме веднъж стъпките за създаване на враг, а после ги извикваме с едно блокче. Печалбата не е в по-малко писане, а в едно място за промяна: щом поправим функцията, поправени са всички врагове. Втората идея е променливата ниво . Тя не се вижда на екрана, но влиза в сметка: скоростта е 20 + ниво × 15 . Така трудността не е записана като
Раздел CСтроим програмата блок по блок - не я преписваме наготово

Кодът стъпка по стъпка

блокове
 
Всяка стъпка добавя по едно нещо и казва защо. Пускай играта СЛЕД всяка стъпка - детето вижда промяната, вместо да я приема наготово.
Раздел DЗаснет резултат - играта, както върви в симулатора

Пробвай на живо

играта на живо
Отвори редактора на дъската и пусни играта там. Децата виждат същия екран на своите конзоли или в своя браузър.
Раздел EЦъкни отговор - зелено вярно, червено грешно

Въпрос 1 от 3

Каква е главната полза от функцията?

  • Програмата работи по-бързо
  • Стъпките стоят на ЕДНО място и промяната им важи навсякъде
  • Блоковете стават по-цветни
 
Дай време за мислене. Цъкането оцветява избора; „Покажи верния" показва отговора на дъската.
Раздел EЦъкни отговор - зелено вярно, червено грешно

Въпрос 2 от 3

Защо скоростта е „20 + ниво × 15“, а не просто число?

  • За да изглежда по-сложно
  • За да се изчислява и да расте сама с нивото
  • Защото Arcade не приема малки числа
 
Дай време за мислене. Цъкането оцветява избора; „Покажи верния" показва отговора на дъската.
Раздел EЦъкни отговор - зелено вярно, червено грешно

Въпрос 3 от 3

Какво прави „on game update every 4000 ms“?

  • Чака играчът да натисне бутон
  • Обажда се сам на всеки 4 секунди
  • Спира играта за 4 секунди
 
Дай време за мислене. Цъкането оцветява избора; „Покажи верния" показва отговора на дъската.
Раздел FГотови решения нарочно няма - търси, греши и пробвай пак

Твой ред да твориш

  • ★ Смени наградата за ниво - вдигни го на всеки 5 точки вместо на 10.
  • ★★ Направи функция новаХрана и я викай със същия подход като враговете.
  • ★★★ Добави втора променлива, която пази колко врага има едновременно, и спри създаването над определен брой - иначе екранът се задръства.
измисли свое Измисли своя прогресия: какво точно се променя от ниво на ниво в твоята игра - скорост, брой, размер, време или правило? Най-добрите игри променят по едно нещо наведнъж, за да личи разликата.
Насърчи промяна и разширяване, не копиране. Звездите са трудност, а „измисли свое" е поканата да излязат извън урока.
За учителяОрганизация на часа

Честа грешка

Враговете се трупат и играта забива. Функцията се извиква на всеки 4 секунди и никой не маха старите врагове. След минута на екрана има петнайсет спрайта, всеки с поведение follow - играта става неиграема, без да има нито една грешка в кода.

✓ Ограничи броя или махай врагове Или увеличавай интервала с нивото, или унищожавай врага след попадение и преброй колко са живи. Поука от програмирането: кодът може да е напълно правилен и въпреки това играта да е развалена.

Речник

функция - блок със свое име, в който слагаме стъпки и после го викаме

викане на функция - блокът, с който се изпълнява написаната функция

изчислена трудност - число, което расте по формула, вместо да е записано

on update interval - събитие, което се задейства само, през зададено време

Как върви часът

1. Идея. Класът предполага как ще стане, преди да види кода.

2. Кодът - по един блок. Пускай след всяка стъпка.

3. На живо. Играта свързва кода с резултата.

4. Твой ред. Задачите нямат готови решения - нарочно.

Редакторът е на английски. За разлика от MakeCode за micro:bit, средата за Arcade още няма български превод - блоковете са с английски надписи. Имената на променливите обаче приемат кирилица и в този курс са на български (играч, храна, враг, ниво).

Трябва ли конзола: не задължително. Играта върви и в браузъра на arcade.makecode.com; конзолата дава физическите бутони и това, че играта излиза от екрана на компютъра.