Un ocell es mou per la pantalla i menja pizza

Crear un joc nou

Cliquem en l'opció "New Project" per a començar un nou projecte de joc. Abans de programar-lo hem de posar-li un nom. Mireu que passa quan escriviu en nom!

Farem un joc basat en el primer tutorial que ens ofereix l'equip de MakeCode a la seva web.

Tots els jocs comencen amb l'esdeveniment "on start", on es defineixen les opcions inicials del programa.

Definir color de fons

Escollim l'opció "Scene" del menú de blocs.

Afegim l'esdeveniment "set background color to ..." dins de l'esdeveniment "on start" i definim el color de fons fent un clic a la casella de color.

Afegir el primer personatge

Escollim l'opció "Sprites" del menú de blocs.

Afegim l'esdeveniment "set mySprite to sprite of kind Player". Aquesta opció permet definir el primer personatge. Cliquem al desplegable "mySprite" i canviem el nom amb l'opció "Rename variable...". Ara el nostre personatge es diu "Ocell"

Cliquem sobre el requadre gris per a obrir l'eina de dibuix. Canviem l'opció "Editor" per l'opció "Gallery" i escollim un dels ocells de la galeria.

Cliquem al botó verd "Done" per a confirmar l'opció.

I ja tenim el nostre personatge a la pantalla del joc. L'opció del personatge tipus "Player" no la canviem, ja que és la que correspon per al nostre joc.

Moure el personatge

Escollim l'opció "Controller" del menú de blocs.

Afegim l'esdeveniment "move mySprite with buttons +" per poder donar-li opcions de moviment al nostre personatge.

Veureu que apareix un triangle que indica error al costat de "mySprite". L'error és degut al fet que anteriorment hem canviat en nom al nostre personatge. Cliqueu el desplegable i canvieu a l'opció "Ocell".

Voleu fer alguna modificació? Podeu canviar el color de fons o el nom i la imatge del personatge.

Afegir el segon personatge

Opció "Sprites" del menú de blocs.

Esdeveniment "set mySprite to sprite of kind Player".

Canvi de nom amb l'opció "Rename variable..." i anomenen el segon personatge "Pizza".

Aquest segon personatge és diferent del primer. La seva característica és que és el menjar, i per tant s'ha de canviar l'opció última per "kind Food".

Programar l'acció de menjar pizza...

Ara que la tenim l'ocell i el menjar, hem de programar el que passa quan l'ocell menja la pizza

Això ho farem quan un personatge estigui a sobre d'un altre personatge. En aquest cas quan l'ocell estigui a sobre de la pizza, o el personatge Jugador estigui superposat al personatge Menjar.

Opció "Sprites" del menú de blocs i l'esdeveniment "on sprite of kind player overlaps otherSprite of kind player". Aquest esdeveniment permet controlar si un personatge està a sobre d'un altre personatge. En aquest cas quan l'ocell estigui a sobre de la pizza, o el personatge jugador estigui superposat al personatge menjar. Per tant, hem de canviar l'opció última i fer que "otherSprite" sigui del tipus "Food"

Tots els esdeveniments que posem dins de la següent ordre s'executaran quan un personatge tipus Player estigui superposat sobre un altre personatge tipus Food

...i guanyar punts

Quan l'ocell mengi pizza guanyarem punts. Per fer això hem d'afegir una opció del menú Info. El bloc "Change score by 1" permet guanyar un punt cada vegada que l'ocell mengi pizza. I això és possible si ho fiquem dins del bloc anterior que controla la superposició dels personatges.

I la pizza canvia de posició a l'atzar!

Però la pizza sempre és al mateix lloc. Com podem fer que aparegui a llocs diferents de la pantalla?

La pantalla de joc està dividida per punts, anomenats píxels, horitzontals i verticals. De píxels horitzontals hi ha 160, i de píxels verticals hi ha 120.

Per a definir la posició d'un objecte escollim del menú Sprites l'esdeveniment "set mySprite position to x 0 y 0". La X representa la posició horitzontal i la Y representa la posició vertical. La posició (0,0) és la cantonada superior de l'esquerra.

Canviem "mySprite" per "Pizza" per a definir la posició que tindrà el personatge Pizza.

El menú Math té una opció per escollir nombres a l'atzar. Aquest esdeveniment és "pick random 0 to 10". Permet escollir de forma aleatòria un nombre dins d'un interval. El que farem és escollir la posició X,Y (horitzontal i vertical) de la pizza cada vegada que sigui menjada per l'ocell.

La posició horitzontal estarà definida entre 0 i 160 i la posició vertical estarà definida entrr 0 i 120. Aquesta posició canviarà a l'atzar cada vegada que aparegui un nou tros de pizza.

Una mica més difícil!

I ara afegirem una mica de dificultat al joc. Al menú Info hi ha l'esdeveniment "start countdown 10 s" que permet afegir un comptador de segons invers. Per defecte tindrem 10 segons per menjar la pizza. Us atreviu a ficar menys segons?

Provar el joc!

Cliqueu al simulador que hi ha a l'esquerra de la pantalla. Podeu moure l'ocell? Si esteu treballant amb l'ordinador, podeu utilitzar els cursors per moure l'ocell. També podeu utilitzar el simulador amb el ratolí. Funciona?

El botó de més a la dreta del simulador permet fer-lo gran o petit.

Vols jugar des de la tauleta o. des del mòbil?

Compartir el joc!

Podeu compartir el vostre joc als vostres amics. A més, si ho compartiu, també podreu utilitzar-lo al vostre mòbil o tauleta.

Per compartir-lo cliqueu al botó de compartir del menú esquerre superior.

Per poder compartir el joc s'ha de publicar.

Una vegada publicat ja el podem compartir.

Podeu copiar l'enllaç de publicació i enviar-lo a qui vulgueu.

O podeu escanejar el codi QR i visualitzar-lo a la vostra tauleta o al vostre mòbil.

...i uns ratpenats no el deixen tranquil!

Joc amb cors que representen vides

A l'opció "Info" del menú de blocs escollim l'esdeveniment "set life to 3" per afegir vides al joc. Ara l'ocell tindrà tres vides.

Una nova tipologia de personatges

Ara afegirem un nou "sprite" anomenat "Arbre". Com a novetat crearem una nova tipologia per aquest personatge. El tipus és "Planta" a l'opció "kind"

Definir la posició fixa d'un personatge

I definim la posició fixa del personatge Arbre amb l'esdeveniment "set Arbre position to X Y" del menú de blocs "Sprites". La posició definida és 150 per la x i 110 per la y.

I ara els ratpenats!

Al menú de blocs escollin l'opció "Game" i l'esdeveniment "on game update every 3000 ms" farem que aparegui un ratpenat cada tres segons. Per aquesta opció afegim l'esdeveniment del bloc de "Sprites" "set Ratpenat to projectile from Arbre with vx vy". Les opcions VX i VY defineixen la velocitat i direcció dels ratpenats.

Els valors de VX i VY són aleatoris entre -25 i 25. La VX estableix la velocitat horitzontal (negatiu cap a esquerra i positiu cap a la dreta) i la VY estableix la velocitat vertical (negatiu cap a baix i positiu cap a dalt).

Ratpenats! No topeu!

Si el nostre ocell topa amb un ratpenat, perdrem una vida.

Al bloc del menú "Sprite" escollim l'opció "on sprite of kind Player overlaps otherSprite of kind Projectile" controlarem que l'ocell topi amb un ratpenat i llavors el ratpenat es destruirà i perdrem una vida.

Del menú de blocs "Sprite" escollim l'esdeveniment "destroy Ratpenat" per fer desaparèixer els ratpenats quan topen amb l'ocell. I del menú "Info" escollim l'esdeveniment "change life by -1" per perdre una vida.