Tutorial Snap! Menú

2016-08-25

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.

Botons i escenari

joc-marcianitu-escenaris

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:

  • Afegint tres nous objectes (tres botons: juga, menú i instruccions)

  • Afegint tres vestits més a l’escenari: un primer per la caràtula que mostra el joc al iniciar i que hi té escrit: “Marcianitu i l’atac dels clon-cometes”. Un segon vestit per l’escenari és pel menú, on es mostren els botons de juga i instruccions i, finalment, un tercer escenari amb les instruccions del joc.

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:

  • Començar el joc (Juga)
  • Mostrar les instruccions per aprendre a jugar (instruccions)
  • Tornar al menú (menú)

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.

  • Al iniciar el projecte amb la bandera verda, es posa l’escenari de la caràtula i espera una miqueta perquè la puguem llegir.

  • Després de dos segons, envia a tots el missatge de Menú.

  • Al rebre el missatge, l’escenari canvia al vestit que hem dissenyat per al menú.

  • Si cliquem juga, comença el joc i, per tant, posem el fons negre.

  • Si cliquem instruccions, es mostrarà el vestit amb l’explicació del joc.

Blocs escenari

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

Blocs botó menú

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

Blocs botó instruccions

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

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 botó juga

blocs-marcianitu-juga-boto

Blocs marcianitu

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:

  • El de bandera verda que amaga el personatge al començar
  • El de recepció de missatge juga.

Important

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.

blocs-marcianitu-fi

Blocs cometa

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…

  • Prova de desactivar aquest script,
  • Juga una partida i, quan perdis les vides,
  • Clica de nou al botó de jugar per veure com passa.

blocs-marcianitu cometa clon

Juga al marcianitu amb menú!

Fi

I fins aquí el tutorial de Snap! al blog. Amb la tonteria, he escrit una vintena d’entrades! Espero que hagi sigut útil!