💾 Archived View for gamifi.cat › blog › 2016-08-23_clons captured on 2023-11-04 at 12:08:36. Gemini links have been rewritten to link to archived content

View Raw

More Information

⬅️ Previous capture (2023-03-20)

-=-=-=-=-=-=-

Inici

Blog

Projectes

Glossari

Contacte

Tutorial Snap! Clons

Resum i objectius

En aquestes últimes entrades d’extensions:

Ara, recuperarem el projecte del marcianitu i el cometa que vam posar d’exemple a la pràctica de les coordenades de l’escenari. El projecte no era realment cap joc però en podem reciclar el codi per crear-ne un: crearem un joc senzill d’un marcianitu que esquiva cometes. El marcianitu tindrà 3 vides i, cada cop que un cometa toqui el marcianitu, explotarà i li restarà una vida. S’acabarà el joc quan les vides siguin 0.

Tal com està programat el projecte del marcianitu i el cometa, només surt un sol cometa en tot el projecte. La modificació que farem és que, ara, en sortiran molts de cometes, però serà el mateix objecte: el que realment farem és clonar l’objecte “Cometa”. Això sí que serà una “amenaza de los clones”, hehe, “de los clones-cometa”.

joc-marcianitu-2 [IMG]

Escenari

En aquest nou projecte reciclat del marcianitu i el cometa, trobem que l’escenari ha canviat i molt: no en el seu disseny, que segueix sent negre; sinó en la seva programació. Ara, l’escenari, conté tres valuoses variables que haurem de crear.

Per molt ràpid que vagin, si només en surt un de tant en tant, és massa fàcil i no té cap gràcia. La cosa és fer-los sortir, cada cop més ràpid i cap cop en major nombre, és a dir:

blocs-marcianitu-escenari [IMG]

L’script de la bandera verda que controla la variable velocitat de l’objecte cometa i dels seus clons: veiem que atura el joc un cop les vides són més petites que 1, és a dir, quan les vides són 0.

L’script de la bandera verda que controla la variable freqüència, veiem que es repeteix fins que té un valor de 0.3. La programació de l’escenari determina què farà la variable programada però per veure l’efecte de la variable hem d’anar a la programació del cometa. La repetició, però, no la programem com la resta (fins que les vides siguin més petites que 1) perquè si el cometa espera és 0 o menys de 0, és a dir que no s’espera entre la creació d’un clon i d’un altre, se’ns omplirà la pantalla de clons i ja no podrem jugar més.

Per cert, a mi em va molt lent el joc, suposo que perquè hi ha molts clons… I com faig servir Iceweasel (Firefox de Debian) i no pas Chrome com es recomana, doncs deu ser per això que se’m clava el joc sovint fins al punt de tenir que aturar scripts del navegador…

Marcianitu

El nostre marcianitu no ha canviat tant com l’escenari en qüestió de blocs de programació. Segueix movent-se en el seu eix x controlat pel ratolí (d’esquerra a dreta) i té fixe el seu eix y per situar-lo a la part inferior de l’escenari.

Ara, però, el nostre marcianitu té programada una interacció amb el cometa.

Com vèiem en altres pràctiques, no es pot restar amb els blocs de les variables: s’ha de restar sumant en negatiu i em sembla divertidíssim! :) Per cert, s’espera una mica per si comença a restar més vides de les que toca: prova de treure el bloc d’espera aviam què passa, és probable que perdis a l’instant totes les vides i s’aturi el joc.

blocs-marcianitu [IMG]

Cometa-clon

El nostre cometa també ha canviat molt des de l’últim projecte: abans només en queia un de sol per exemplificar les coordenades y de l’escenari. Ara, en sortiran una pila! I aniran sortint fins que el marcianitu no perdi totes les vides. Ho vèiem a la programació de l’escenari, on s’atura el joc. El nostre cometa es clona a si mateix quan es prem la bandera verda.

blocs-marcianitu cometa [IMG]

Tot seguit, l’script que manega què fan els clons:

Ara, m’ha picat per posar-li una variable més que es digui “Punts” i programar el marcianitu perquè ens digui la puntuació al finalitzar cada partida.

Digues punts

Primer haurem d’anar a l’escenari i crear una nova variable “Punts”.

blocs-marcianitu punts [IMG]

Ara, cada vegada que comenci el joc, els punts es posaran a zero i augmentaran a cada segon. Ho hem convertit en un joc de supervivència, hehe. Quants segons aguantaràs abans de ser colpejat per tres clon-cometes?

blocs-marcianitu vides [IMG]

Snap-Practica-Extensions4-Digues-punts2-marcianitu-tall

Doncs la puntuació ens la donarà el marcianitu un cop hagi perdut les seves tres vides. Descobrim un nou bloc d’operadors que pot anar dins un bloc d’aparença “digues” per fer que el marcianitu ens digui la nostra puntuació final. Un cop ens ha dit la puntuació, s’atura el joc. Fi de la partida.

Atenció: si implementem que el marcianitu ens digui la puntuació, hem de procurar treure el bloc d’atura tot que tenim a l’escenari. Si el deixem, aturà el joc just quan les vides siguin menys que 1 i no veurem el que ens diu el marcianitu!

Per cert, m’agrada molt aquesta combinació de blocs aparença, operadors i variable: és molt diversa i colorida ;) Aquí el resultat a la pantalla:

joc-marcianitu-punts [IMG]

Si cada punt és un segon… quants minuts i segons he durat sota la pluja de cometes? Mates creatives :) De fet, li podríem programar al marcianitu que ens ho digués en minuts i segons. I podríem canviar en nom de la variable per “Temps”. El marcianitu, però, ens hauria de dir alguna cosa com: “Has aguantat X segons!” o en cas de depassar un minut: “Has aguantat X minuts i X segons!”.

<a href="https://snap.berkeley.edu/snap/snap.html#present:Username=gamificat&ProjectName=Practica-10-digues-punts">Juga al marcianitu!</a>

ContinuaciĂł

I per la propera, afegirem un menĂş al joc del marcianitu i l'atac dels clon-cometes!