💾 Archived View for gamifi.cat › blog › 2016-08-25_menu captured on 2023-12-28 at 15:57:57. Gemini links have been rewritten to link to archived content
⬅️ Previous capture (2023-03-20)
-=-=-=-=-=-=-
A l’última entrada hem fet un joc d’un marcianitu que tenia que sobreviure a una pluja de cometes. Ara, veurem com posar un menú al nostre joc.
joc-marcianitu-escenaris [IMG]
Per implementar el menú i, per tant, el reinici del joc, programarem tres botons i tres nous escenaris. Recordem que es poden fer les mateixes coses de diferent manera! Nosaltres, ho programarem:
Fins ara, el nostre projecte tenia un escenari amb un vestit de fons negre i dos objectes: el marcianitu (que només té un vestit) i el cometa (que té dos vestits, un per quan apareix i l’altre per quan col·lisiona amb el marcianitu o el terra).
Ara, tindrem l’escenari amb quatre vestits i un total de cinc objectes: el marcianitu, el cometa, i els tres nous botons. Per programar els nostres botons, haurem de fer ús de l’enviament i recepció de missatges, com vam veure a les pràctiques. En funció del botó que l’usuari prem, l’objecte es mostrarà, s’amagarà i enviarà un missatge per:
La novetat, a més, radica en què, un cop acabem una partida i el marcianitu ens ha dit la nostra puntuació, envia el missatge de menú, amb el que es torna a posar l’escenari del menú amb els seus botons, amb el que rejuguem des del propi joc, sense haver de recomençar el joc clicant la bandera verda de nou.
En funció de la programació dels botons, l’escenari actua en conseqüència.
A més dels scripts de velocitat, freqüència i punts que ja teníem al projecte anterior, l’escenari tindrà aquests altres scripts. El missatge de fi, com veurem, l’envia el marcianitu un cop ja no té vides. Les variables es poden mostrar i amagar a voluntat:
blocs-marcianitu-escenari-menu [IMG]
Aquí deixo els blocs dels botons. El fet de jugar amb la mida és el que fa aquest efecte de botó intermitent: tècnicament, augmenta i disminueix la mida (com amb els passos o les variables es resta sumant en negatiu).
blocs-marcianitu-menu-boto [IMG]
Si ens fixem, al joc, qui remena les cireres és la variable “Vides”. Fins ara, tots els objectes i escenari actuen quan el valor d’aquesta variable és més petita que 1, és a dir, quan no li queden vides al marcianitu.
La cosa és que, als blocs dels botons hem programat el bucle de repetició amb la variable punts per un motiu: no és necessari que repeteixi aquest efecte si no es mostra l’objecte. Al començar a jugar, tot i que no els veiem perquè estan amagats, els tres objectes segueixen en bucle repetint l’efecte fins que el marcianitu es queda sense vides: no cal.
Poden deixar de fer l’efecte abans i és per això que hem aprofitat la variable punts que, com hem vist al projecte anterior, suma un a cada segon que passa. Per tant, al començar a jugar, només passa un segon fins que s’atura el bucle de repetició.
blocs-marcianitu-instruccions-boto [IMG]
La gràcia és que hi ha tantes solucions com persones. Les mateixes coses es poden programar diferentment. La qüestió, sempre, és com solucionem el problema que trobem pel camí.
blocs-marcianitu-juga-boto [IMG]
Com en aquest projecte estem reciclant blocs del projecte anterior, hem de pensar que, a més dels que es mostren a la imatge, falten:
Al final del bucle de repetició, hem de pensar a afegir el missatge “envia a tots a Fi”. El marcianitu i l’escenari reben aquest missatge: l’escenari amaga les variables i el marcianitu ens diu la puntuació. Tot seguit, envia el missatge menú per tal de mostrar, de nou, el botó de juga. I així, podem començar una altra partida.
El cometa no varia gaire, reciclem tots els blocs que ja tenim al projecte anterior per aquest objecte i afegim un script més: és la manera que he trobat per parar els clons… Si no es posa, quan es juga una altra partida, surten desenes de clons a la pantalla que encara no han tocat el terra o al marcianitu.
Pensem que, arriba un punt, que es genera un clon cada 0.3 segons…
blocs-marcianitu cometa clon [IMG]
I fins aquí el tutorial de Snap! al blog. Amb la tonteria, he escrit una vintena d’entrades! Espero que hagi sigut útil!