💾 Archived View for gamifi.cat › blog › 2016-08-21_nivells captured on 2023-07-10 at 13:44:41. Gemini links have been rewritten to link to archived content
⬅️ Previous capture (2023-03-20)
-=-=-=-=-=-=-
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”.
Primer, crearem una variable que podem anomenar “Nivell” i farem que tingui un valor de 1 al començar el joc.
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.
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.
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]
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ó:
<a href="https://snap.berkeley.edu/snap/snap.html#present:Username=gamificat&ProjectName=Practica-10-Nivells">Juga al laberint amb nivells!</a>
He fet una Ăşltima entrada per crear clons amb el marcianitu :)