Skip to content

Commit 022f4cd

Browse files
authored
Merge pull request #1690 from fffN0ISEfff/fyrverker
Fyrverker
2 parents ae101e5 + dfa9d23 commit 022f4cd

File tree

1 file changed

+309
-0
lines changed

1 file changed

+309
-0
lines changed
Lines changed: 309 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,309 @@
1+
---
2+
title: Феєрверк
3+
level: 2
4+
author: 'Переклад з [Code Club UK](//codeclub.org.uk)'
5+
translator: 'Юлія Б'
6+
language: ua
7+
---
8+
9+
10+
# Introduksjon {.intro}
11+
12+
У цьому проєкті ми запустимо феєрверк над містом.
13+
14+
![Зображення фежрверку над містом](fyrverkeri.png)
15+
16+
17+
# Підготовка: Завантаж файли зображень {.activity}
18+
19+
Цю першу частину ви можете виконати з допомогою дорослих!
20+
21+
## Sjekkliste {.check}
22+
23+
- [ ] Завантажте zip-файл fyrverkeri_lydogbilder.zip і помістіть його на робочий стіл вашого комп’ютера або в інше місце,
24+
де ви його зможете знайти пізніше.
25+
26+
- [ ] Розпакуйте zip-файл, клацнувши по ньому правою кнопкою миші і вибравши `Екстрактувати все` або `Розпакувати файли` або щось подібне.
27+
28+
# Крок 1: Створити феєрверк, що летить до курсора миші {.activity}
29+
30+
*Ми почнемо з імпорту різних зображень, які ми будемо використовувати в грі.*
31+
32+
## Контрольний список {.check}
33+
34+
- [ ] Створіть новий проєкт у Scratch. Видаліть кота, клацнувши по ньому правою кнопкою миші і вибравши `вилучити`.
35+
36+
- [ ] Змініть фон на, наприклад, `Поза приміщенням/city-with-water`.
37+
38+
- [ ] Натисніть *"Обрати персонаж: Завантажити персонаж"*, ![завантажити фыгурку з файлу](../bilder/hent-fra-fil.png),
39+
щоб додати фігуру феєверку до проекту `fyrverkeri_lydogbilder/rocket.png`.
40+
41+
- [ ] Ми хочемо, щоб феєрверк зник, коли ви натиснете на зелений прапорець.
42+
43+
```blocks
44+
коли @greenFlag натиснуто
45+
сховати
46+
```
47+
48+
Тепер ми зробимо так, щоб феєрверк рухався до курсора миші, коли ви натискаєте клавішу пробіл.
49+
50+
- [ ] Додайте блок `коли клавішу пропуск натиснуто`{.blockevents}. Потім створіть два блоки,
51+
які зроблять феєрверк видимим і дозволять йому рухатися до курсора миші.
52+
53+
```blocks
54+
коли клавішу [пропуск v] натиснуто
55+
показати
56+
ковзати (1) сек до x: (мишка x) y: (мишка y)
57+
```
58+
59+
## Тестування проєкту {.flag}
60+
61+
__Натисніть на зелений прапорець.__
62+
63+
- [ ] Розмістіть курсор миші над сценою і натисніть клавішу пробіл.
64+
65+
- [ ] Ви бачите феєрверк, який рухається до курсора миші?
66+
67+
- [ ] Що відбувається, якщо ви перемістите курсор миші і знову натиснете клавішу пробіл?
68+
69+
70+
## Контрольний список {.check}
71+
72+
Феєрверки зазвичай не літають з боку в бік, тому ви повинні зробити так,
73+
щоб ваш завжди летів до курсору миші знизу екрана.
74+
75+
- [ ] Перед тим, як запустити феєрверк, використовуйте блок `перейти в` щоб
76+
він перемістився до нижньої частини екрану, але при цьому залишався на
77+
тому ж горизонтальному місці.
78+
79+
```blocks
80+
коли @greenFlag натиснуто
81+
сховати
82+
83+
коли клавішу [пропуск v] натиснуто
84+
перемістити в x: (мишка x) y: (-200)
85+
показати
86+
ковзати (1) сек до x: (мишка x) y: (мишка y)
87+
```
88+
89+
## Тестування проєкту {.flag}
90+
91+
__Натисніть на зелений прапорець.__
92+
93+
- [ ] Натисніть клавішу пробіл.
94+
95+
- [ ] Чи летить феєрверк до курсора миші знизу екрану?
96+
97+
- [ ] Що відбувається, якщо ви перемістите курсор миші
98+
і знову натиснете клавішу пробіл?
99+
100+
## Контрольний список {.check}
101+
102+
- [ ] Нарешті, спробуйте досягти того ж самого, використовуючи кнопку
103+
миші замість клавіші пробіл. Для цього ми можемо помістити наш скрипт
104+
в блоки `повторювати завжди`{.blockcontrol} та `якщо мишку натиснуто то`{.blockcontrol}.
105+
106+
- [ ] Перемістіть скрипт з `коли клавішу пропуск натиснуто`{.blockevents} до
107+
`коли зелений прапорець натиснуто`{.blockevents}, щоб він виглядав так:
108+
109+
```blocks
110+
коли @greenFlag натиснуто
111+
сховати
112+
завжди
113+
якщо <мишку натиснуто?> то
114+
перемістити в x: (мишка x) y: (-200)
115+
показати
116+
ковзати (1) сек до x: (мишка x) y: (мишка y)
117+
кінець
118+
кінець
119+
```
120+
121+
## Тестування проєкту {.flag}
122+
123+
__Натисніть на зелений прапорець.__
124+
125+
- [ ] Натисніть кнопку миші над тлом (фоновою картинкою).
126+
Натисніть знову в іншому місці.
127+
128+
- [ ] Чи летять феєрверки?
129+
130+
## Виклик {.challenge}
131+
132+
- [ ] Спробуйте зробити так, щоб деякі феєрверки рухалися трохи повільніше або швидше за інші.
133+
134+
- [ ] Спробуйте змінити спосіб, яким феєрверк летить до курсора миші:
135+
наприклад, зробіть його політ дугою.
136+
137+
138+
# Крок 2: Повідомлення іншим елементам {.activity}
139+
140+
*Тепер ми змусимо феєрверк спрацювати!!*
141+
142+
## Контрольний список {.check}
143+
144+
- [ ] Наступний крок - змусити феєрверк надіслати повідомлення решті елементів,
145+
коли він спрацює. Ми будемо використовувати це повідомлення пізніше.
146+
Створіть нове повідомлення з назвою `Салют`.
147+
148+
149+
```blocks
150+
коли @greenFlag натиснуто
151+
сховати
152+
завжди
153+
якщо <мишку натиснуто?> то
154+
перемістити в x: (мишка x) y: (-200)
155+
показати
156+
ковзати (1) сек до x: (мишка x) y: (мишка y)
157+
сховати
158+
оповістити [Салют v]
159+
кінець
160+
кінець
161+
```
162+
163+
## Тестування проєкту {.flag}
164+
165+
__Натисніть на зелений прапорець.__
166+
167+
- [ ] Спробуйте змінити число в блоці `ковзати`{.blockmotion} ,
168+
щоб феєрверк зник одночасно зі спрацюванням.
169+
170+
## Контрольний список {.check}
171+
172+
- [ ] Завантажте нову фігуру з файлу `fyrverkeri_lydogbilder/firework1.png`.
173+
174+
- [ ] Коли ця фігура отримує повідомлення `Салют` переконайтесь, що вона зникає,
175+
переміщуємо її до феєрверку за допомогою блоку `перемістити в`{.blockmotion}, а тоді показуємо через 1 чи 3 секунди
176+
177+
```blocks
178+
коли я отримую [Салют v]
179+
сховати
180+
перемістити в x: ([значення х v] з [rocket v]) y: ([значення y v] av [rocket v])
181+
показати
182+
чекати (3) секунд
183+
сховати
184+
```
185+
186+
## Тестування проєкту {.flag}
187+
188+
__Натисніть на зелений прапорець.__
189+
190+
- [ ] Чи замінюється феєрверк зображенням салюту, коли вона вибухає?
191+
192+
- [ ] Що відбувається, якщо ви тримаєте кнопку миші, рухаючи курсор?
193+
(Знайшли якусь помилку? Не хвилюйтеся, ми виправимо це пізніше.)
194+
195+
196+
# Крок 3: Зробіть кожен салют унікальним {.activity}
197+
198+
*Тепер ми додамо трохи різноманітності, щоб всі салюти виглядали по різному.*
199+
200+
## Sjekkliste {.check}
201+
202+
- [ ] Ми можемо зробити кожен салют унікальним, використовуючи блок `встановити ефект колір`{.blocklooks} і
203+
вибираючи випадковий колір перед тим, як салют з'явиться.
204+
205+
```blocks
206+
коли я отримую [Салют v]
207+
сховати
208+
встановити ефект [колір v] в (випадкове від (1) до (200))
209+
перемістити в x: ([значення x v] av [rocket v]) y: ([значення y v] з [rocket v])
210+
показати
211+
чекати (3) секунд
212+
сховати
213+
```
214+
215+
- [ ] Додайте різні зображення салютів як образи, вибравши вкладку `Образи`{.blocklightgrey} для `firework1`.
216+
Натиснувши *Обрати образ*, ![Завантажити файл](../bilder/hent-fra-fil.png), ви можете додати `firework2.png`,
217+
`firework3.png` та `firework4.png` із `fyrverkeri_lydogbilder`.
218+
219+
- [ ] Можете зробити так, щоб салюти використовували різні образи?
220+
(Підказка: Ви можете натиснути на останній завантажений образ).
221+
222+
## Тестування проєкту {.flag}
223+
224+
__Натисніть на зелений прапорець.__
225+
226+
- [ ] Чи має кожен салют інший колір?
227+
228+
- [ ] Чи виглядає кожен салют по-різному?
229+
230+
## Контрольний список {.check}
231+
232+
- [ ] Наостанок збільшіть розмір салютів після того, як феєрверк спрацює!
233+
Замість того, щоб лише чекати 1 секунду, встановіть розмір фігури на 5% перед тим,
234+
як вона з'явиться, і після того, як вона стане видимою,
235+
збільшіть розмір на 25 разів, використовуючи блок `повторити`{.blockcontrol}.
236+
237+
```blocks
238+
коли я отримую [салют v]
239+
сховати
240+
наступний образ
241+
встановити ефект [колір v] в (випадково від (1) до (200))
242+
перемістити в x: ([значення x v] av [rocket v]) y: ([значення y v] з [rocket v])
243+
задати розмір (5)
244+
показати
245+
повторити (20)
246+
змінити колір на (5)
247+
кінець
248+
чекати (1) секунд
249+
сховати
250+
```
251+
252+
## Тестування проєкту {.flag}
253+
254+
__Натисніть на зелений прапорець.__
255+
256+
- [ ] Чи починається салют з центру ракети?
257+
258+
- [ ] Чи збільшується салют поступово?
259+
260+
## Виклик {.challenge}
261+
262+
Спробуйте зробити кожен салют ще більш унікальним: змініть розмір і швидкість зростання салюту.
263+
264+
# Крок 4: Виправлення помилки "надіслати повідомлення"{.activity}
265+
266+
Чи пам’ятаєте ви, що раніше у нас була проблема з триманням кнопки миші натиснутою?
267+
268+
269+
Ця проблема виникає тому, що коли феєрверк надсилає своє повідомлення про спрацювання,
270+
вона одразу ж повторює цикл із блоку `якщо`{.blockcontrol}. Таким чином, повідомлення про спрацювання
271+
надсилається до того, як попереднє повідомлення про анімацію завершено.
272+
273+
У світі програмування ми називаємо такі проблеми *багами* (bugs з англійської “жук”),
274+
тому що в старі часи (коли комп'ютери були набагато більшими) могли виникати проблеми через те,
275+
що комахи застрягали всередині комп'ютерів і таким чином псували програми.
276+
277+
## Контрольний список {.check}
278+
279+
- [ ] Щоб виправити це, ви можете замінити блок `оповістити`{.blockevents} на `оповістити і чекати`{.blockevents}.
280+
Тоді цикл не повторюватиметься, доки попередній салют не завершиться.
281+
Поверніться до `феєрверку` і змініть скрипт:
282+
283+
```blocks
284+
коли @greenFlag натиснуто
285+
сховати
286+
завжди
287+
якщо <мишку натиснуто?> то
288+
перемістити в x: (мишка x) y: (-200)
289+
показати
290+
ковзати (1) сек до x: (мишка x) y: (мишка y)
291+
сховати
292+
оповістити [Салют v] і чекати
293+
кінець
294+
кінець
295+
```
296+
297+
## Тестування проєкту {.flag}
298+
299+
__Натисніть на зелений прапорець.__
300+
301+
- [ ] Чи з'являється салют у потрібному місці і в потрібний час?
302+
303+
## Збереження проєкту {.save}
304+
305+
__Вітаю, ви закінчили! Тепер ви можете насолоджуватися грою!__
306+
307+
Не забудьте поділитися своєю грою з усіма своїми друзями та родиною! Натисніть на `Зберегти негайно` у меню.
308+
309+
Ліцензія: [Code Club World Limited Terms of Service](https://github.com/CodeClub/scratch-curriculum/blob/master/LICENSE.md)

0 commit comments

Comments
 (0)