💾 Archived View for gamifi.cat › blog › 2016-08-21_nivells captured on 2023-12-28 at 15:58:14. Gemini links have been rewritten to link to archived content

View Raw

More Information

⬅️ Previous capture (2023-03-20)

-=-=-=-=-=-=-

Inici

Blog

Projectes

Glossari

Contacte

Tutorial Snap! Laberint nivells

Objectius

Recordem que, al nostre projecte del laberint, el nostre escenari “Laberint” té només un vestit i que és força fàcil. Per complicar el joc, podem afegir altres vestits-laberint al nostre escenari. Així, quan l’abella arribi fins la flor, passarem a un nivell més difícil. Per posar nivells a un joc necessitarem els blocs de variables. Així serà el nivell 2 amb el nou vestit!

Si voleu reciclar el projecte, podeu fer-ne una còpia i desar-lo amb un altre nom amb l’opció “Anomena i desa”. Per exemple, enlloc de “Projecte laberint” es pot dir “Projecte laberint nivells”.

joc-laberint [IMG]

Escenari

Primer, crearem una variable que podem anomenar “Nivell” i farem que tingui un valor de 1 al començar el joc.

blocs-laberint-escenari [IMG]

Abella

Com vèiem al projecte del laberint, l’abella, a més de moure’s amb les fletxes del teclat, interactua amb l’escenari i amb la flor amb els blocs de sensors: si toca el laberint, torna a la seva posició inicial i si toca la flor, diu “Polinització!” i s’atura el joc.

En aquest nou projecte, hem hagut de fer alguna variant. Per cert, no sé perquè, si no poso el bloc de “tecla premuda”, l’abella no torna a la posició inicial fins que deixa de tocar el color negre… Fes la prova, treu el bloc verd d’operadors “això i això” i el de “tecla premuda”.

En fi, que “Quan rebi el missatge “Juga!” que envia l’escenari, l’abella fa dues en paral·lel:

A diferència del primer projecte que hem fet del laberint, ara, hi ha dos laberints i l’abella no pot tornar sempre a les mateixes coordenades perquè el lloc on va depèn del laberint en el que es troba. Aquest missatge, com veurem, servirà a l’abella per saber on ha d’anar, cap a on ha de mirar i quina mida ha de mostrar.

blocs-laberint-juga [IMG]

Com ara tenim dos laberints, farem acabar el joc al segon laberint (nivell 2) i no al primer (nivell 1).

La segona cosa que fa l’abella quan rep el missatge “Juga” és:

Al nivell 1, quan l’abella toca la flor, diu “Polinització” durant 2 segons i s’acaba el joc, però ara tenim dos nivells.

Podem detectar que, al aturar-se el projecte, encara podem moure l’abella amb les fletxes de direcció. Per solucionar aquest problema, hauríem de crear una variable “Velocitat”, com hem fet a l’extensió anterior del Pong multijugador. Haurem d’assignar-li a la velocitat el valor de 10 quan comenci el projecte, fer moure l’abella a “Velocitat” passos i assignant la velocitat el valor 0 abans d’aturar el joc.

Mida i posiciĂł

En el nostre cas, posant un nou laberint, veurem que hem de fer més petita l’abella perquè sinó, de seguida toca el laberint i no es pot jugar. A més, la posició d’inici de l’abella i de la flor als dos laberints és diferent, així que haurem d’indicar a l’abella i la flor a quin laberint són perquè es mostrin a un lloc o a un altre i amb una mida o altra.

Aquests ordres són dins d’un bloc nou que hem creat que es diu “Abella Nivell 1”. Com vèiem en una pràctica anterior, podem crear els nostres propis blocs que, en llenguatge de codi, serien funcions. I són útils quan repetim comportaments: ens estalviem repetir blocs i és més eficient pel projecte que estem programant.

blocs-laberint-mida-abella [IMG]

Hem creat aquest nou bloc, doncs, per no repetir tres blocs a dos llocs diferents. Les ordres de mida, posició i direcció són exactament les mateixes tan quan comença el joc (que és nivell 1) com quan l’abella toca el laberint al nivell 1. Però no són les mateixes ordres quan canviem de laberint: la mida, posició i direcció varien, així que ho indiquem a l’abella amb un condicional.

Com vèiem a l’escenari, al clicar la bandera verda, l’abella es posa a la mida i la posició necessàries per al nivell 1 amb el bloc “Abella Nivell 1”. Al rebre’l, l’abella, estableix la seva mida i posició en funció del nivell:

blocs-laberint-posicio-abella [IMG]

Flor

Amb la flor farem el mateix que amb l’abella, dir-li on ha d’anar en funció del nivell. Per fer-ho, establim una condició:

blocs-laberint-flor [IMG]

<a href="https://snap.berkeley.edu/snap/snap.html#present:Username=gamificat&ProjectName=Practica-10-Nivells">Juga al laberint amb nivells!</a>

ContinuaciĂł

He fet una Ăşltima entrada per crear clons amb el marcianitu :)