Pla de treball
- Condicions de canvi de nivell
- Velocitat de la pilota
- Mida de la raqueta
- Compte enrere
Velocitat i mida de la raqueta
Anem a afegir diferents nivells de dificultat al joc, de manera que cada cop sigui una mica més complicat avançar i no es faci avorrit.
Fem-ho pas a pas
- Entrem al nostre compte de l’Scratch, obrim el projecte m2repte61 i el desem com a m2repte71
- Com que volem que la pilota vagi cada cop més ràpid, hem de crear una variable que es digui “velocitat”
- Inicialitzem la variable “velocitat” al principi del tot del programa:
- Ara que tenim aquesta variable, canviem el bloc mou-te 10 per mou-te “velocitat”:
- La gestió de nivells la podem fer de dues maneres, per temps o per punts. Per exemple, podem fer que hi hagi un canvi de nivell cada 15 segons o cada 10 punts
- Fem la gestió per punts. Dins del bucle on hi ha la lògica del programa, just després de verificar que la pilota toca la raqueta, hi posem aquests blocs:
- Un altre element que podem afegir per augmentar la dificultat és disminuir la mida de la raqueta. Ara bé, com que el programa està a la pilota i volem actuar sobre un altre personatge, ho haurem de fer amb l’enviament d’un missatge, que haurem creat prèviament, tal i com vam fer a la sessió 10 del mòdul 1:
- Aquest missatge l’ha de rebre la raqueta, per tant a la raqueta li afegim aquest programa. Fixem-nos que augmentar -5 és el mateix que disminuir 5:
- Cal que tinguem en compte que quan tornem a executar el programa la mida de la raqueta ja serà més petita. Per tal que això no passi hem de posar aquest bloc just darrera de la bandera verda del programa de la raqueta:
Seguim amb el projecte m2repte71 i fem que hi hagi un augment de velocitat i una disminució de la mida de la raqueta cada 10 punts (als 10 punts, 20 punts, 30 punts…).
Pista: Fixem-nos que “cada 10 punts” és el mateix que dir quan nombre de punts sigui múltiple de 10. Per detectar si els punts són múltiples de 10, podem dividir els punts entre entre 10 i comprova si el residu és 0. Podem fer servir aquest bloc:
Fem una còpia del repte que tenim obert m2repte71 amb el nom m2repte72. En aquest repte els canvis de velocitat de la pilota i de mida de la raqueta han de ser gestionats en funció del temps que ha transcorregut aprofitant el cronòmetre (en lloc dels punts com en el repte anterior)
Límit de temps
A la sessió anterior hem treballat amb el cronòmetre i hem comentat que podíem gestionar el temps de forma similar però fent servir una variable. El cronòmetre només ens permet augmentar el temps de forma automàtica; amb una variable de temps podem controlar-lo fent-lo augmentar (compte endavant) o disminuir (compte enrere).
Fem-ho pas a pas
- Continuem amb el projecte m2repte71
- Creem una variable que es digui “temps”
- Amb aquesta variable podem crear un compte enrere, que el faríem d’aquesta manera:
- Inserim aquest compte enrere en el nostre projecte de manera que cada cosa vagi al seu lloc. La inicialització del temps al principi i el que hi ha dins del bucle on està la lògica del programa
- Aquest compte enrere ens ha de servir per acabar la partida quan el temps arriba a zero:
Seguim amb el projecte m2repte71. Igual que en funció de la puntuació hem augmentat el nivell (velocitat de la pilota i mida de la raqueta), fem ara que augmentin les vides i el temps disponible en funció dels punts.
El nostre projecte creix…
El control de nivells que hem treballat en el nostre pong, és a dir, canvi de velocitat de la pilota, mida de les raquetes, així com modificació de les vides i el temps en funció dels punts acumulats es poden aplicar, també, al nostre repte final del pinball. Cal que afegim a la descripció del nostre pinball com volem que sigui la mecànica del joc en qüestió de puntuacions, vides i nivells. Aquestes són, en realitat, les instruccions per a jugar al vostre pinball. A la sessió 11 se us demanarà que aquestes instruccions estiguin clarament explicades a l’apartat d’Instruccions del vostre projecte.
Com que som programadors i programadores parlem de…
- Nivells de joc: condicions que han de complir-se per variar la complexitat del joc. Generalment són seqüencials i depenen d’unes variables definides.