Labirintul: un joc complet în Scratch
Azi pleci acasă cu un joc adevărat: un labirint desenat de tine, un personaj pe care îl conduci din taste, pereți care te trimit înapoi la start și o țintă care te duce la nivelul 2. La finalul laboratorului vei avea un proiect Scratch jucabil, pe care îl poate încerca oricine — colegul de bancă e primul tester.
Ce îți trebuie
- scratch.mit.edu — merge și fără cont, dar cu cont poți salva proiectul online (cere acordul profesorului pentru creare de cont).
- Un calculator cu tastatură (jocul se controlează din săgeți).
- Timp: 45 de minute — 15 pentru labirint și mișcare, 15 pentru coliziuni și țintă, 15 pentru nivelul 2 și testare.
Pasul 1: labirintul, personajul și mișcarea
- Deschide Scratch și creează un proiect nou.
- Șterge pisica? Nu încă — dar micșoreaz-o: în panoul de sub scenă, la Mărime, scrie
30. Un personaj mic încape pe coridoare. - Dă clic pe Scenă (dreapta jos), apoi pe tab-ul Fundaluri și alege Pensulă (convertește la bitmap dacă îți cere).
- Desenează labirintul cu unealta Linie sau Dreptunghi, cu o singură culoare pentru toți pereții — de exemplu un albastru închis. Aceeași culoare peste tot este o regulă, nu un moft: coliziunea se va verifica pe culoare.
- Lasă un punct de START într-un colț și un loc liber în colțul opus pentru țintă.
- Adaugă din bibliotecă un al doilea personaj pentru țintă (o steluță, un buton — ce vrei) și micșorează-l tot la
30. Așază-l în colțul opus startului.
Mișcarea din săgeți
Personajul se mișcă schimbându-și coordonatele. Construiește pe pisică patru scripturi scurte, câte unul pentru fiecare săgeată:
- „când se apasă tasta săgeată dreapta" → „modifică x cu
5" - „când se apasă tasta săgeată stânga" → „modifică x cu
-5" - „când se apasă tasta săgeată sus" → „modifică y cu
5" - „când se apasă tasta săgeată jos" → „modifică y cu
-5"
Blocurile de eveniment sunt în categoria galbenă Evenimente, iar „modifică x cu..." în albastrul Mișcare.
Pasul 2: coliziuni și țintă
Aici intră în joc lecția despre decizii. Regula jocului, în cuvinte: cât timp jocul rulează, DACĂ personajul atinge culoarea pereților, se întoarce la start.
- Adaugă pe pisică un script nou: „când se dă clic pe steagul verde".
- Dedesubt: „du-te la x: ... y: ..." cu coordonatele punctului de START (le citești mutând pisica acolo și uitându-te în panoul de sub scenă).
- Continuă cu blocul „la infinit" din categoria Control.
- În interiorul buclei pune „dacă ... atunci" și în hexagonul condiției trage „atinge culoarea ...?" din Detecție. Dă clic pe pastila de culoare, apoi pe pipetă, apoi pe un perete din scenă — așa prinzi exact culoarea pereților.
- În interiorul lui „dacă": „du-te la x: ... y: ..." cu aceleași coordonate de start.
Pentru țintă, tot pe pisică, în aceeași buclă „la infinit", adaugă al doilea „dacă ... atunci" cu condiția „atinge Steluța?" (sau cum se numește personajul-țintă), iar înăuntru blocul „spune Nivelul 1 trecut! pentru 2 secunde".
Pasul 3: nivelul 2
Un joc cu un singur nivel se termină prea repede.
- La Fundaluri, dă clic dreapta pe fundalul cu labirintul → duplică. Pe copie, redesenează câteva coridoare ca să fie mai greu — păstrează aceeași culoare de pereți.
- În scriptul cu ținta, înlocuiește „spune..." cu: „treci la fundalul următor" + „du-te la x: ... y: ..." (startul).
- La steagul verde, adaugă la începutul scriptului „treci la fundalul
labirint1", ca jocul să înceapă mereu de la nivelul 1.
Și promisiunea cu ȘI/SAU: fă ținta să conteze doar dacă jucătorul chiar a parcurs traseul. Creează o variabilă cheie (categoria Variabile), pune undeva pe traseu un al treilea personaj-cheie care la atingere face cheie = 1, iar condiția de trecere devine: „atinge Steluța?" ȘI „cheie = 1". Fără cheie, steluța nu te lasă mai departe.
Dacă nu merge
- Pisica trece prin unii pereți, prin alții nu. Pereții au culori ușor diferite (s-a schimbat nuanța între două sesiuni de desen). Selectează tot labirintul în editor și recolorează-l uniform, apoi ia culoarea din nou cu pipeta.
- Pisica se blochează la start și tot sare înapoi. Punctul de start e prea aproape de un perete — la coordonatele de start personajul deja atinge culoarea. Mută startul mai spre mijlocul coridorului și actualizează coordonatele în ambele blocuri „du-te la".
- Săgețile mișcă pagina browserului, nu personajul. Dă un clic pe scena Scratch înainte de a apăsa săgețile — tastatura trimite tastele acolo unde e focusul.
- La nivelul 2 personajul apare într-un perete. Startul de pe fundalul 2 nu coincide cu cel de pe fundalul 1. Fie desenezi nivelul 2 cu startul liber în același loc, fie pui coordonate de start diferite după „treci la fundalul următor".
- „Atinge culoarea" nu găsește pipeta. Micșorează fereastra de alegere a culorii și trage-o deoparte: pipeta e ultimul buton, jos, și trebuie să dai clic pe perete direct pe scenă.
Misiunea ta
Nivel de bază (obligatoriu): jocul complet descris mai sus — două nivele, coliziuni, start, țintă.
Extindere: adaugă o variabilă vieți care pornește de la 3; fiecare atingere de perete scade o viață, iar la 0 vieți jocul spune „Ai pierdut!" și se oprește cu blocul „oprește tot".
Provocare: un cronometru. Folosește blocul „cronometru" din Detecție și condiția: jucătorul câștigă doar dacă atinge steluța ȘI cronometrul e mai mic de 60. Afișează timpul pe scenă bifând variabila în paletă.
Ai terminat când:
- poți trece jocul de la nivelul 1 la nivelul 2 fără să atingi vreun perete „prin noroc" (coliziunea prinde orice atingere);
- steagul verde resetează totul corect: nivelul 1, personajul la start;
- colegul de bancă a jucat jocul fără să-i explici nimic și a înțeles singur ce are de făcut.