середа, 27 квітня 2016 р.

Готуємось до 8 класу або натискаємо кнопки у Scratch

Привіт усім! Сьогоднішній пост для семикласників яким після нетривалого вивчення Scratch познайомляться зі справжніми мовами програмування, а найцікавіше те, що вивчати програмування пропонується на середовищах для візуального програмування на зразок Delphi, Lazarus, Visual Studio і тд. А починати там доведеться зі знайомства з "формами", "кнопками", "перемикачами" і тд. І звичайно ми вчителі будемо говорити про те, що кнопки можна клікати, перемикачі перемикати, форми мають заголовок і ще багато властивостей. Але перед цим ще є час познайомитись з "кнопками" та "поклікати" їх у вже знайомому нам середовищі Scratch



Клікаємо кнопки


1. Малюємо кнопку
Спочатку намалюємо їх.
Кнопка1

Щоб отримати імітацію натискання кнопки намалюємо другу кнопку.
Кнопка2

Але найголовніше, щоб кнопка "присідала" потрібно виставити центр для обох образів кнопки як показано на малюнку:


 (у 8 класі учні дізнаються чому так )

Залишилось тільки написати скрипт для анімації

2. Скрипт анімації
Отже наша кнопка повинна реагувати коли на ній клацнути кнопкою миші.
Отож якщо подивитись на команди Scratch можна знайти два блоки які реагують на "мишу"
Це керуючий блок.
"Кнопка" у цьому блоці - це ім’я нашої намальованої кнопки.
Та датчик

Який же вибрати? Більшість відразу скаже,  що  "Коли натиснуто Кнопка". При цьому вона повинна присісти, тобто фактично виконати такий скрипт:

Спробуйте і побачите, що щось тут не так. Що ж саме? Якщо бути уважним то не важко помітити, що кнопка "присідає" вже після того як ми натиснули і відпустили кнопку миші.
Якщо "поклікати" кнопки у справжніх програмах наприклад Калькулятор то можна спостерігати, що кнопка буде "натисненою" доки утримувати на ній натиснену кнопку миші. 
Враховуючи цей факт подивимось чим нам може допомогти датчик "Мишку натиснуто"
Цей датчик можна використовувати з блоком

Слід зауважити, що цей датчик реагує завжди коли мишку натиснуто і не важливо відбулось це на кнопці чи на іншому об’єкті. Але ж нам потрібно, щоб датчик реагував на кнопку. В цьому нам допоможе ще один датчик

Отже кнопка повинна присідати коли "Мишку на тиснуто" і "Доторкається до вказівник миші"
Маю надію, що хтось здогадався, що кнопка повинна реагувати на мишу ЗАВЖДИ :-). Але так як блок "завжди" не має після себе продовження ми не матимемо змоги виконати щось після натискання кнопки. Тому скрипт анімації краще приклеїти на Прапорець. В результаті маємо