Decizii: dacă personajul atinge
Scripturile iau decizii cu „dacă … atunci” și „dacă … atunci … altfel”: personajul culege obiecte, se oprește la pereți și răspunde la poziția lui pe scenă.
Ai nevoie de:
- Un calculator cu acces la internet
- Editorul Scratch, pe scratch.mit.edu
1. Condițiile
O condiție este un bloc cu marginile ascuțite, care are valoarea adevărat sau fals. Condițiile se pun în blocurile „dacă”, „așteaptă până când” și „repetă până când”.
Condițiile folosite cel mai des în jocuri sunt în categoria Detectare:
- „atinge …?”: adevărat când personajul atinge alt personaj, marginea scenei sau cursorul mouse-ului;
- „atinge culoarea …?”: adevărat când personajul atinge culoarea aleasă;
- „tasta … apăsată?”: adevărat cât timp tasta este apăsată.
2. Culegerea unui obiect
Adaugă în proiect personajul Apple, din biblioteca de personaje, categoria Mâncare. Pisica se deplasează cu săgețile, ca în fișa a doua. Mărul are scriptul lui:
Când pisica atinge mărul, se aude un sunet, iar mărul apare în alt loc de pe scenă.
când se dă click pe @greenFlag
mergi la [poziție aleatoare v]
la infinit
dacă <atinge [Sprite1 v]?> atunci
pornește sunetul [Chomp v]
mergi la [poziție aleatoare v]
end
end3. Dacă … atunci … altfel
Blocul dacă … atunci … altfel are două ramuri:
- blocurile din prima ramură se execută când condiția este adevărată;
- blocurile din ramura „altfel” se execută când condiția este falsă.
Condiția de mai jos folosește operatorul „>” din categoria Operatori și valoarea „poziția x” din categoria Mișcare:
când se dă click pe acest personaj dacă <(poziția x) > [0]> atunci spune [Sunt în dreapta scenei.] pentru (2) secunde altfel spune [Sunt în stânga scenei.] pentru (2) secunde end
4. Pereții
Un perete se desenează în decor cu o culoare care nu mai apare în altă parte, de exemplu negru. Condiția „atinge culoarea” verifică dacă personajul a ajuns la perete:
Personajul face pasul, iar dacă a ajuns în perete, face imediat pasul înapoi. Pe scenă se vede numai că s-a oprit la perete.
când se dă click pe @greenFlag
mergi la x (-200) y: (0)
la infinit
dacă <tasta [săgeată dreapta v] apăsată?> atunci
modifică x cu (5)
dacă <atinge culoarea [#000000]?> atunci
modifică x cu (-5)
end
end
end5. Condiții compuse
Operatorii și, sau, nu, din categoria Operatori, leagă mai multe condiții:
- „… și …”: adevărat când ambele condiții sunt adevărate;
- „… sau …”: adevărat când cel puțin una este adevărată;
- „nu …”: adevărat când condiția este falsă.
dacă <<atinge [Apple v]?> și <tasta [spațiu v] apăsată?>> atunci spune [L-am prins!] pentru (1) secunde end
Exerciții
🔑 Rezolvare
când se dă click pe @greenFlag
la infinit
dacă <atinge [Apple v]?> atunci
spune [Mmm!] pentru (0.5) secunde
end
end🔑 Rezolvare
când se dă click pe @greenFlag
mergi la x (0) y: (0)
la infinit
dacă <tasta [săgeată dreapta v] apăsată?> atunci
modifică x cu (5)
end
dacă <tasta [săgeată stânga v] apăsată?> atunci
modifică x cu (-5)
end
dacă <atinge [marginea v]?> atunci
mergi la x (0) y: (0)
spune [Ai ieșit!] pentru (1) secunde
end
end🔑 Rezolvare
Pentru fiecare direcție, pasul înapoi este pasul cu semnul schimbat:
când se dă click pe @greenFlag
mergi la x (-200) y: (-150)
setează mărimea la (30) %
la infinit
dacă <tasta [săgeată dreapta v] apăsată?> atunci
modifică x cu (3)
dacă <atinge culoarea [#000000]?> atunci
modifică x cu (-3)
end
end
dacă <tasta [săgeată stânga v] apăsată?> atunci
modifică x cu (-3)
dacă <atinge culoarea [#000000]?> atunci
modifică x cu (3)
end
end
dacă <tasta [săgeată în sus v] apăsată?> atunci
modifică y cu (3)
dacă <atinge culoarea [#000000]?> atunci
modifică y cu (-3)
end
end
dacă <tasta [săgeată jos v] apăsată?> atunci
modifică y cu (-3)
dacă <atinge culoarea [#000000]?> atunci
modifică y cu (3)
end
end
dacă <atinge culoarea [#00ff00]?> atunci
spune [Am ieșit!] pentru (2) secunde
end
endPersonajul se micșorează la 30%, ca să încapă pe culoarele labirintului.
🔑 Rezolvare
- Prima: falsă. Niciuna dintre cele două condiții nu este adevărată.
- A doua: adevărată. Pisica nu atinge mărul, iar „nu” schimbă fals în adevărat.
- A treia: adevărată. Pisica este în centru, deci poziția x este 0, iar tasta spațiu nu este apăsată.
Ce ai învățat
La finalul fișei, poți:
- să folosești condițiile „atinge …?”, „atinge culoarea …?” și „tasta … apăsată?”;
- să construiești decizii cu „dacă … atunci” și „dacă … atunci … altfel”;
- să oprești un personaj la pereții desenați în decor;
- să legi condițiile cu „și”, „sau”, „nu”.