6-dars: Scratch — events va motion bloklari
Dars haqida
Davomiyligi: 90 daqiqa Maqsad: Talaba Events va Motion bloklarni chuqurroq o'rganishi, klaviatura va sichqoncha bilan boshqarish qila olishi va interaktiv loyihalar yarata olishi kerak.
1. Events — hodisalar
Events — Scratch'da biror narsa bo'lganda kod ishga tushadi.
2. Events bloklari batafsil
when 🟢 clicked
Yashil bayroq bosilganda — kod ishga tushadi. Asosiy event.
when 🟢 clicked
... bu yerdagi kod ishlaydiwhen [space] key pressed
Klavish bosilganda.
Tanlash mumkin: any key, space, up arrow, down arrow, left arrow, right arrow, A-Z, 0-9.
when [space] key pressed
say "Space bosildi!" for 1 secswhen this sprite clicked
Spritega sichqoncha bilan bosilganda.
when this sprite clicked
play sound Meow
say "Meni bosding!" for 2 secswhen backdrop switches to
Backdrop o'zgarganda.
when backdrop switches to [forest]
say "O'rmondamiz!" for 2 secswhen loudness > 10
Mikrofondan ovoz baland bo'lsa.
when loudness > 10
move 100 stepswhen timer > 10
Vaqt o'tganda.
when timer > 5
say "5 sekund tugadi!" for 2 secswhen I receive [xabar]
Xabar olish — bir sprite boshqasiga signal yuborish.
when I receive [start]
show
move 10 stepsbroadcast [xabar]
Xabar yuborish — boshqa spritelarga signal.
broadcast [start]
broadcast [start] and wait3. Misol: Mushuk va sichqon
Mushuk uchun:
when 🟢 clicked
forever
broadcast [tick]
wait 1 seconds
when [space] key pressed
say "Sichqonga ergashaman!" for 1 secs
go to [Sichqon] vSichqon uchun:
when I receive [tick]
move 10 steps
if on edge, bounceMushuk har sekundda "tick" xabarini yuboradi → sichqon harakat qiladi. Space bosilganda — mushuk sichqonga teleportatsiya.
4. Motion bloklari batafsil
move 10 steps
10 piksel oldinga.
- Yo'nalish — sprite'ning directioniga bog'liq
- Salbiy raqam — orqaga
turn ↻ 15 degrees va turn ↺ 15 degrees
15 daraja soat strelkasi bo'yicha yoki teskari.
point in direction 90
Aniq yo'nalish:
90 — o'ngga
0 — yuqoriga
-90 — chapga
180 — pastgapoint towards [...]
Boshqa sprite tomonga burilish.
point towards [mouse-pointer]Sichqoncha kursoriga qarab buriladi.
go to x:0 y:0
Aniq koordinatalarga.
go to [random position]
Tasodifiy joy.
glide 1 sec to x:100 y:100
Silliq harakat belgilangan vaqtda.
change x by 10 va change y by 10
X yoki Y koordinata oshirish/kamaytirish.
set x to 0 va set y to 0
X yoki Y aniq qiymat.
if on edge, bounce
Chetga yetganda — qaytib aylanish.
set rotation style
Sprite qanday aylanishi:
- all around — har tomonga
- left-right — faqat chap va o'ng
- don't rotate — aylanmaslik
5. Klaviatura bilan boshqarish
Klassik o'yin uslubi — strelka klavishlar bilan harakat.
when 🟢 clicked
go to x:0 y:0
when [up arrow] key pressed
change y by 10
when [down arrow] key pressed
change y by -10
when [right arrow] key pressed
change x by 10
when [left arrow] key pressed
change x by -10Sprite — strelkalar bilan boshqariladi.
6. Aniq yo'nalish bilan harakat
when [up arrow] key pressed
point in direction 0
move 10 steps
when [down arrow] key pressed
point in direction 180
move 10 stepsSprite aylanadi va keyin harakat qiladi.
Rotation style
Agar sprite aylanishini xohlamasangiz:
set rotation style [don't rotate](Sprite turibdi, lekin yo'nalish o'zgaradi)
7. Sichqoncha bilan boshqarish
when 🟢 clicked
forever
point towards [mouse-pointer]
move 5 stepsSprite sichqoncha kursoriga ergashadi.
8. Glide — silliq harakat
when 🟢 clicked
forever
glide 1 sec to x:200 y:100
glide 1 sec to x:-200 y:100
glide 1 sec to x:-200 y:-100
glide 1 sec to x:200 y:-100Sprite to'rtburchak chizadi — har burchakka silliq harakat.
9. Tasodifiy harakat
when 🟢 clicked
forever
go to [random position]
wait 1 secondsSprite tasodifiy joylarda paydo bo'ladi.
Yoki:
when 🟢 clicked
forever
glide 1 sec to x:(pick random -200 to 200) y:(pick random -150 to 150)Tasodifiy koordinata.
10. Loyiha: Tutib oluvchi
Vazifa: Sichqon (sprite) yuqoridan tushadi. Tovuq (boshqa sprite) ni klaviatura bilan boshqaring va tutib oling.
Sichqon (yuqoridan tushadi)
when 🟢 clicked
forever
go to x:(pick random -200 to 200) y:170
glide 2 secs to x:(x position) y:-170Tovuq (klaviatura bilan)
when 🟢 clicked
go to x:0 y:-150
set rotation style [left-right]
when [right arrow] key pressed
point in direction 90
move 20 steps
when [left arrow] key pressed
point in direction -90
move 20 stepsTegishish (collision)
Sichqon tovuqqa tegsa — biror narsa qilsin (kelajakda variable bilan ball hisoblash).
Hozircha:
when 🟢 clicked (tovuq uchun)
forever
if <touching [Sichqon] v?> then
play sound Meow
say "Tutdim!" for 1 secs11. Sensing bloklari (kirish)
Sensing — sprite'lar atrof'ni sezish uchun.
touching [...]
Sprite biror narsaga tegmoqdami?
if <touching [edge]?> then
say "Chetda!" for 1 secs
if <touching color [#FF0000]?> then
play sound Pop
if <touching [Sprite2]?> then
hidedistance to [...]
Boshqa sprite gacha masofa.
if <(distance to [Sprite2]) < 50> then
say "Yaqin!" for 1 secsmouse x va mouse y
Sichqonchaning koordinatalari.
key [space] pressed?
Klavish hozir bosilganmi (boolean).
ask "Ismingiz?" and wait
Foydalanuvchidan savol so'rash.
ask [Ismingiz nima?] and wait
say (join [Salom ] (answer)) for 2 secsMushuk: "Ismingiz nima?" → siz "Akmal" yozasiz → mushuk: "Salom Akmal"
answer
Oxirgi ask ning javobi.
12. Vaqt (timer)
when 🟢 clicked
reset timer
forever
if <(timer) > 5> then
say "5 sekund o'tdi!" for 2 secs
reset timer13. Misol: Savol-javob bilan suhbat
Sprite (Mushuk):
when 🟢 clicked
ask [Ismingiz nima?] and wait
say (join [Salom ] (answer)) for 2 secs
ask [Yoshingiz?] and wait
if <(answer) > 18> then
say [Sen kattalarsan] for 2 secs
else:
say [Sen yoshsan] for 2 secs14. Operatorlar (qisqacha)
Operators kategoriyasi — matematika va matn.
Matematik
+ - * /
mod (qoldiq)
abs (mutlaq qiymat)
pick random 1 to 100Taqqoslash
< (kichik)
> (katta)
= (teng)Mantiqiy
and (va)
or (yoki)
not (emas)Matn
join [Salom ] [dunyo] → "Salom dunyo"
letter 1 of [Akmal] → "A"
length of [Akmal] → 5
contains? — ichida bormi?15. Vizual o'rnatmalar (Looks)
Tezroq ko'rib chiqamiz, batafsil keyingi darsda:
show / hide - ko'rsatish / yashirish
say [Salom!] for 2 secs - matn balonchasi
think [...] for 2 secs - o'ylash balonchasi
switch costume to [...] - kostyum
next costume - keyingi kostyum
change size by 10 - o'lcham
set size to 100 - aniq o'lcham
change [color] effect by 25 - rang effekt
clear graphic effects - effektlarni tozalashDarsdagi topshiriqlar
Topshiriq 1 — Klaviatura boshqaruv
Sprite'ni 4 ta klavish (strelka) bilan boshqaring:
when 🟢 clicked
go to x:0 y:0
when [up arrow] key pressed
change y by 10
... va h.k.Stage'da chiziqlar qoldirsin (Pen extension'ni qo'shing → pen down).
Saqlang: 1-klaviatura
Topshiriq 2 — Sichqoncha izi
Sprite doim sichqonchaga ergashsin.
when 🟢 clicked
forever
point towards [mouse-pointer]
move 3 stepsBirinchi va ikkinchi sprite — turli tezlikda. Kim tezroq sichqonchaga yetib boradi?
Saqlang: 2-sichqoncha-iz
Topshiriq 3 — Tasodifiy harakat
3 ta sprite — har biri tasodifiy joylarda porlab tursin.
Har sprite:
when 🟢 clicked
forever
go to [random position]
change [color] effect by 25
wait 0.5 secondsSaqlang: 3-tasodifiy
Topshiriq 4 — Tutib oluvchi o'yin
Dars matni'da berilgan tutib oluvchi o'yinni yarating.
Yaxshilang:
- Bir nechta sichqon (yoki olma) yuqoridan tushadi
- Tovuq strelka bilan harakat
- Tegishganda — ovoz va xabar
- 30 sekund vaqt
Saqlang: 4-tutib-oluvchi
Topshiriq 5 — Suhbat (ask/answer)
Mushuk sizdan 5 ta savol so'rasin:
- "Ismingiz?"
- "Yoshingiz?"
- "Eng yoqimli rangingiz?"
- "Eng yoqimli ovqat?"
- "Eng katta orzuingiz?"
Har javobni eslab qolib, oxirida butun matn chiqarsin:
"Salom [ism]! Sen [yosh] yoshda ekansan.
Sevimli ranging — [rang]. Sevimli ovqat — [ovqat].
Eng katta orzuing — [orzu]. Bu ajoyib!"Saqlang: 5-suhbat
Topshiriq 6 — Broadcast bilan o'zaro
3 ta sprite bir-biriga xabar yuborib gaplashadi:
- Sprite 1: yashil bayroq bosilganda — "Salom!" deydi va
salomxabarini yuboradi - Sprite 2:
salomxabarini olganda — "Salom Sprite 1!" deydi vasalom2xabarini yuboradi - Sprite 3:
salom2xabarini olganda — "Men ham bormanku!" deydi vaboshlashxabarini yuboradi - Sprite 1:
boshlashxabari kelganda — "Endi o'yin boshlanadi!" deydi
Broadcast tizimini tushuning.
Saqlang: 6-broadcast
Topshiriq 7 — Touching colorlar bilan
Labirint o'yini:
- Stage backdrop'da chiziqlar bilan labirint chizing (qora chiziqlar)
- Sprite strelkalar bilan harakat qiladi
- Agar qora chiziqqa tegsa — boshlanish joyiga qaytsin
if <touching color [#000000]?> then
go to x:-200 y:-150
say "Tegding!" for 1 secsSaqlang: 7-labirint
Topshiriq 8 — Glide bilan to'rtburchak
Sprite silliq harakat bilan to'rtburchak chizadi:
when 🟢 clicked
pen up
go to x:-100 y:-100
pen down
glide 1 sec to x:100 y:-100
glide 1 sec to x:100 y:100
glide 1 sec to x:-100 y:100
glide 1 sec to x:-100 y:-100(Pen extension qo'shing)
Yaxshilang: turli geometrik shakllar — uchburchak, beshburchak, doira (loop bilan).
Saqlang: 8-glide-shakllar
Asosiy tushunchalar (lug'at)
| Termin | Qisqacha izoh |
|---|---|
| Event | Hodisa (yashil bayroq, klavish va h.k.) |
| Broadcast | Xabar yuborish |
| Receive | Xabar olish |
| Motion | Harakat bloklari |
| Direction | Yo'nalish (gradus) |
| Glide | Silliq harakat |
| Sensing | Sezish bloklari |
| Touching | Tegmoqda |
| Distance | Masofa |
| Ask / Answer | Savol / Javob |
| Timer | Taymer |
| Operators | Matematik va mantiqiy |
| Pick random | Tasodifiy raqam |
| Pen | Qalam (chizish) |
| Rotation style | Aylanish uslubi |