Si la setmana anterior la vam dedicar als blocs més bàsics, aquesta tercera setmana del Mooc de la UOC ens dedicarem a blocs més avançats: enviament de missatges, llistes i clons. Es proposen dues activitats evaluables: un projecte personal i continuar l’Arkanoid que vam engegar la setmana passada.
Consulta els continguts del curs
Els missatges permeten la comunicació entre els objectes d’un projecte. Podem, per exemple, sincronitzar accions com converses entre personatges. És el propi objecte que envia una notificació que pot ser captada per qualsevol altre objecte o l’escenari. Per enviar missatges hem de fer servir dos blocs: un d’enviament i un de rebuda.
A Scratch podem donar el nom que vulguem a un missatge. Si cliquem la pestanyeta que hi ha al costat dret, se’ns despleguen tots els missatges creats al projecte i també dóna la opció de crear un nou missatge. Quan s’envia el missatge arribarà a tots els personatges simultàniament. Els objectes o personatges que tinguin el barret de “Quan rebi (i el missatge)….” executaran el codi que tinguin sota el barret en el moment de la rebuda del missatge.
Per il·lustrar-ho, se’ns presenta un exemple d’enviament i rebuda de missatges on els gats s’envien missatges i diuen coses diferents. Un altre exemple es veu al vídeo del curs: el videotutorial del gat i el gos que tenen una microconversa.
Per practicar, ens han demanat agafar el projecte de blocs de moviment que vam fer la setmana passada i ampliar-lo posant-li un botó més. Aquest botó fará que el personatge llisqui per l’escenari. S’ha de crear un nou personatge en forma de botó i programar-lo: quan es cliqui, ha de fer lliscar el personatge a través de la programació d’enviaments de missatge.
La programació del nou botó “Deslizar” és la següent: quan es cliqui el personatge, enviarà un missatge a tots el missatge “Lliscar” (“Deslizar”, que está en espanyol). Quan el ninotet rebi el missatge “Deslizar”, es desplaçarà del punt inicial fins al mig de la pantalla. Aquí el projecte amb el nou botó:
Dins els blocs de dades (i just a sota de les variables) trobarem una opció anomenada “Crea una llista”, és a dir, que clican aquesta opció, podem crear un conjunt seqüencial de variables. Per seqüencial entenem que cada element de la llista té una posició concreta dins la llista. Així, es permet accedir fàciment a cadascun dels elements de la llista: números, text, disfresses…Es recomana que cada llista emmagatzemi elements del mateix tipus.
En una llista es poden dur a terme diverses accions com: insertar un element o eliminar-lo de la llista, consultar l’estat d’un element en particular, etc. Cada acció s’executa com un bloc diferent. Veiem un exemple de llista a Scratch! També se’ns comparteix un altre vídeo per saber com funcionen les llistes.
Per entrenar-nos amb les llistes, se’ns proposa reinventar l’exemple que se’ns ha donat i resoldre un petit repte: crear un botó nou per eliminar un element en funció del seu valor emmagatzemat a la llista (número o text) en lloc de fer-ho per posició.
Aquí el meu projecte a Scratch:
Els clons són còpies idèntiques d’un personatge i permeten replicar el personatge sense tenir que crear múltiples objectes amb la mateixa programació. Per a explicar-ho millor ens posen d’exemple la creació d’un projecte que simula una nevada. En realitat, només hi ha un floc de neu però està programat per clonar-se a si mateix, posicionar-se aleatòriament per la pantalla, fer que cau modificant l’eix y i desapareixent.
També se’ns mostra un projecte i la seva reinvenció amb clons: al projecte d’Space Invaders de l’usuari Supersonic1212 trobem que s’ha creat un objecte per a cada “marcianito dolent”. La cosa es pot simplificar amb clons com es pot veure en la reinvenció del projecte:
Se’ns proposen dos reptes:
Al projecte https://scratch.mit.edu/projects/24707806/
Aquí la meva nevada amb Scratch:
Continuar millorant la programació del joc Space Invaders
Els Sprites 4, 5, 6 i 7 són els que implementen la paret inferior i tenen un codi similar. S’ha de provar d’implementar-los com clons, és a dir, que només pot quedar un personatge (no sé de què em parlen…millorar la programació…del de la setmana passada? No hi ha sprites 4, 5, 6 ni 7… Ja ho aclariré. Seguim, que se m’acumulen els cursos…)
En primer lloc, presentar un projecte original de joc fet amb Scratch. Hem d’anar confeccionant un projecte original (no un remix o reinvenció d’altri) que implementarem la darrera setmana del curs. La primera setmana es demana un primer esboç del projecte. L’avaluació es farà en P2P i els objectius són:
En aquesta primera setmana es proposa definir el projecte que es programarà la darrera setmana. Es demana definir els objectius i els elemens clau per al desenvolupament del joc i la seva posterior usabilitat, jugabilitat i experiència d’aprenentatge.
Com hi ha molta gent diferent al curs (profes, alumnes, progenitors, professionals, etc.) es proposa crear un videojoc o un joc educatiu. M’han matat…per què ho han proposat així?
mit baby foodie 1 amb gameblox [IMG]
I m’han matat perquè jo volia reciclar l’animació del “mAtOnEs y sIUx” (sobre diftongs i hiats en espanyol) que vaig començar a MoocBot però encara li queden cosetes per fer. Així seguia avançant el projecte. Bé, veurem…Potser reciclo un altre joc que vaig fer en un curs del MIT “Baby Foodie”.
Crec que al MIT usen els alumnes per fer de testers i no em sembla un mal intercanvi sempre i quan se solucionin els “bugs” o errors de software…que no es feia quan jo feia el curs…i per això el vaig deixar…no avançava…Ni vaig poder acabar el joc de Gen. 3 : 4-5, sobre Adam i Eva, el paradís, la fruita prohibida i la serp…Un problema que trobo a alguns Mooc és justament la falta de feedback i iteració d’instrumental…però clar…és el MIT i fa un curs gratis…
Doncs he pensat de passar “Baby Foodie” a Scratch, tot i que té un “glitch” o problemilla tècnic (a la dreta de l’escenari: sembla que es clavi…) Vaig demanar ajut i mai el vaig rebre, així que…així es va quedar el joc: és jugable, però, i funciona tot: gravetat dels objectes, puntuacions, canvis d’escenari i personatge, etc. Però no sé si classificar-lo com a videojoc o com a joc educatiu. Trobo que és les dues coses…
D’altra banda, hem de continuar amb l’Arkanoid i afegir el moviment de la pilota. Al projecte de la setmana anterior vam afegir escenari, nau i blocs. Si per defecte, Scratch té blocs pel moviment i el rebot a les vores, no té per defecte blocs de rebot entre objectes: ho haurem de programar. Primer de tot haurem de guardar el projecte de la setmana anterior com una còpia. Després haurem de fer les següents passes:
ATENCIÓ!! El projecte s’ha de compartir, sinó no es pot evaluar…Ho van recordant però hi ha gent que encara “pajareja”. De 5 projectes a corregir la setmana passada, 2 ó 3 no estaven compartits…
Aquí el meva implementació de la setmana del projecte Arkanoid i el videojoc: