Bat dinner | Point towards "mouse pointer" game | Scratch tutorial

 Днес ще научите как да направите подобна игра като Bat dinner. 

Връзка към Скрач: https://scratch.mit.edu/projects/626160767

Какво се използва в кода на играта?

- Програмиране движение в посока курсора на мишката;

- използване блока if touching;

- плъзгане на случайна позиция;

- нулиране на точките;

Допълнителни събития с Broadcast;

- смяна на костюмите;

- използване на блокове от категория Моите блокове (розово);

- set rotation style "left-right".

Подготовка преди да изграждате сценария.

- Създайте променлива с подходящо име. В случая е Insects.

- Изберете фон. В случая е избран Woods. Преработени са цветовете от оригинала.

Идеята на тази игра:

Вие сте прилеп на лов за своята вечеря в гората. През нощта има птици (в случая сова), които може да ви хванат, докато се храните. Спрайтовете са три: прилеп, сова и насекоми. Всеки от тях има различни костюми, с което се въвежда движение в полета на спрайтовете.

Прилепът

Изберете главния спрайт - прилепа, от библиотеката на Скрач. Кодът му се състои в това по време на играта да следва мишката или вашият пръст (за мобилно устройство). 

Сценарият има 4 части. 
Лявата част следва следния ход: къде да се позиционира прилепа в началото на играта. Задаваме размера в %, т.к. е доста голямо изображението при 100%. Да смени костюма с първоначалния си, да се покаже и блок за говорене - дава инструкциите и целта на играта. Следва блок ЗАВИНАГИ, в който да се изпълнява смяна на костюмите му, за да се създаде впечатлението за движение. Правим го на 0.2 сек изчакване. 

Десните три сценария отгоре надолу: 

1. Това е кода за движение. Прилепа следва мишката по екрана. Блок стартирай при зелен флаг; блок ЗАВИНАГИ, в който се изпълнява по време на цялата игра блок point towards "mouse pointer" и придвижване с 4 стъпки. 

Този код има бъг. Ако прилепа докосне курсора на мишката, започва да се мята и трепти, което е нежелан ефект. Опитайте да го отстраните, като добавите блок if-then-else (ако-тогава-иначе) вътре в цикъла ЗАВИНАГИ на прилепа. Добавете към условието ако блок за усещане - допира ли показалец на мишката, а под него премести се с 10 стъпки. В областта иначе, сложете истинския код, който вече описахме.

2. Блок стартирай при зелен флаг; блок ЗАВИНАГИ, в който се изпълнява по време на цялата игра; блок изчакай докато променливата wait until Insects=25 и завършва с блок STOP - избрана опция в него other scripts in sprite

3. Когато получа съобщение да се активира блока Stop - other scripts in sprite.

Ако не помните Допълнителни събития с Broadcast, вижте урока за него.

Насекомите

За да постигнем разнообразие в насекомите към добавения първо спрайт добавихме още костюми от различни възможности от библиотеката на Скрач.


Какво показва кода на насекомите ?

Три части. 
Отляво - 1. При старт на играта с блок зелен флаг, направи променливата Insects=0.(нулираме резултата от предишна игра). Блок отиди на случайна позиция, блок за преоразмеряване в % и блок покажи се. 2. При старт със зелен флаг, блок изчакай докато проемнливата Insects=25. Следва блок за  Stop - other scripts in sprite
Отдясно - 3. Блок зелен флаг; Следва блок ЗАВИНАГИ, в който са вмъкнати блок за проверка ако-тогава  (идеята на този блок е да се прави проверка непрекъснато по врее на играта). Условието, което следи е дали докосва прилепа (Bat). Ако условието е изпълнено блок Change Insects by 1, добавя към броя насекоми 1. Блок отиди на случайна позиция и смени костюма. Накрая в кода е добавен блок за звук - при всяка точка да се чуваа звук за събрано насекомо - звукът е pop.

Сова

Совата ще се движи по сцената на случаен принцип. Има общо 5 сценария в кода на совата. 

Отляво. 1 - Това е началният сценарий. При старт на играта със зелен флаг, с блока отиди на позиция х:-203 и у:-127 искаме винаги да започва от една и съща позиция, вмъкнете и блок за разрешаване на движение наляво и надясно, за да може спрайта да се обръща в двете посоки. В противен случай спрайта ще се обраща надолу с главата, когато я насочвате наляво. С блок смени костюма - искаме винаги играта да стартира с първия костюм и блок покажи се. Предварително сме намалили размера на совата на 80%.. Умисшлено совата стартира в долния ляв ъгъл, за да може при старта на играта да имате разстояние от нея.

2 - Сценарият за проверка, който е вмъкнат в блок ЗАВИНАГИ и дали е изпълнено условието ако докосва прилепа, тогава направи проемнливата Insects=0, изпрати съобщение с Допълнителни събития с Broadcast с името Catched you! и блок за звук Crazy laugh, накрая блок stop all.

Отдясно. 1. Старт със зелен флаг; блок ЗАВИНАГИ, в който на всеки 0,3 сек да се сменя костюма на спрайта, за да се създава впечатление за летене и движение в крилата. 

2. След старта на играта, следва блок за изчакване от 2.5 сек, времето, в което прилепа казва целта на играта. В този сценарий се контролира движението на совата. Сложете блок за point towards Bat - с това насочвате совата винаги към прилепа. Идеята с тази част е да не се случи совата да лети назад. Вторият блок е за плавно движение към случайна позиция за 3 сек. 

3. Този сценарий е да контролира точките - събраните насекоми с променливата Insects. Блок Wait until Insects=25. Следва блок за  Stop - other scripts in sprite

Спрайтовете водно конче и скакалец

Тези спрайтове са внесени за разнообразие в играта. Всъщност играча няма контрол над тях, но в гората през нощта има много насекоми и прици, нали?
Кодовете им са както следва:

Водното конче е с два сценария. 
1. При старт на играта, блок за намаляване на размера в %. винаги да се испълнява движение с приплъзване на случйна позиция и да се завърта на 15 градуса. 
2. Сценарий за смяна на костюмите, за да внесем движение в крилата на това насекомо.

Скакалецът е с два сценария. 
Първият сценарий при старт на играта намалява размера на спрайта, даваме опцията за обръщане наляво-дясно и го поставяме в определена позиция по х и у Следва блок ЗАВИНАГИ, в който са вмъкнати два нови блока - от категория моите блокове. Съответно с имената right и left, които описват движението на скакалеца по сцената. 
Вторият сценарий е за смяна на костюма на скакалеца, за да внесе истинност в неговите подскоци.

Декорът в играта

Декорът има три костюма. Първи - за фон по време на игра. Втори - ако загубите играта. Трети - при печелене на играта. Костюмите всъщност са дублиране на първия декор, смяна в цветовете и добавен надпис.

Сценарият на декора

1 част. При старт на играта смени костюма на Woods.
2 част. При получаване на съобщението Catched you! да се изпълни блок смени костюм Woods2, който е с надпсиа Play again!
3 част. При старт на играта, започва да действа блок изкчакай докато Insects=25, следван от блок смени костюма на Woods3 с надпис You win!, блок за звук Chatter и край с блок STOP all.

Вижте другите уроци от програмирай със Скрач->