Tot seguit s'explicarà, en Català, com realitzar el programa.
Què volem fer?
Al joc MoleMash, un talp va apareixent en posicions aleatòries del camp de joc. El jugador aconseguirà marcar punts quan aonsegueixi colpejar el talp abans que aquest salti.
El talp es mourà cada mig segon. Si és tocat, el marcador suma un punt més, i el telèfon vibra. Quan es prem el botó RESET el marcador es posa a zero.
Aquesta serà la superfície de joc:
Per començar
1. Entrar a la web d'AppInventor i comença un nou projecte.
2. El nom del projecte ha de ser MoleMash_NomCognom1.
3. El Title de la pantalla serà MoleMash_NomCognom1.
Primers components
1. Un Canvas anomenat MyCanvas. Aquesta és l'àrea de moviments del talp. Dimensions: 300pxls wide x 300pxls high
2. Una Label (etiqueta) anomenada "ScoreLabel", que mostra el marcador amb el nombre de vegades que el jugador ha colpejat el talp.
3. El text de l’etiqueta ScoreLabel ha de ser Score: --
4. Un botó anomenat "ResetButton". El text del botó serà RESET
5. Afegir un component de so i anomena'l Noise. Utilitzarem Noise per fer vibrar el mòbil quan el talp és colpejat.
6. Arrossega cap al Viewer el component Clock des de la secció Sensors de la Palette i anomena’l MoleTimer. Aquest component servirà per fer saltar el talp cada 500milisegons. Per a fer això, hem d’establir el valor 500 a la propietat TimerInterval del MoleTimer. Assegureu-vos que la propietat TimerEnabled està activada.
7. Per afegir el talp hem d’utilitzar un sprite. Arrossega unImageSprite des de la secció Drawing and Animation cap a MyCanvas al Viewer. A continuació, estableix les propietats següents:
- Picture: mole.png
- Enabled: activat
- Interval: 500
- Heading: 0
- Speed: 0.0
- Visible: Activat
- Width: Automatic
- Height: Automatic
Un cop afegits els components a l'entorn de treball, ens quedarà una pantalla com la següent:
Especificar el comportament dels components
Què és un procediment (Procedure) en AppInventor? Es tracta d’una seqüència d’events que es poden produir més d’un cop durant l’execució d’un programa.
Definirem dos procediments:
- MoveMole: Mou el sprite del talp a una nova aleatòria posició dins del MyCanvas.
- UpdateScore: Mostra el marcador amb el resultat (score) a travès del text de l’etiquetaScoreLabel.
Definir el procediment MoveMole
1. A l’editor de blocs, a la secció Built-In, obre el calaix de procediments (Procedures), arrossega un blocto procedure i canvia l’etiqueta procedure perMoveMole.
2. A continuació es mostra el bloc to MoveMole, que és on s’estableixen les accions del procediment, que són establir les coordenades X i Y de la posició del talp. El valor de les coordenades serà una fracció aleatòria de la diferència entre el tamany de MyCanvas i el tamany del talp (Mole).
Definir el procediment UpdateScore
1. Definir una variable score, que contindrà el marcador del resultat obtingut a cada instant. Inicialment, la variable creada haurà de tenir valor zero:
2. A l’editor de blocs, a la secció Built-In, obre el calaix de procediments (Procedures), arrossega un blocto procedure i canvia l’etiqueta procedure perUpdateScore.
3. Arrossegueu un bloc de text des del calaix de Text, i poseu el text “Score:”.
4. Afegeix un bloc join per ajuntar el text “Score:” al valor de la variable global score:
Afegir un Timer
Per fer que el talp es mogui hem d’utilitzar el ClockMoleTimer.
A l’editor de Blocs, seleccionem l’event when MoleTimer.Timer. Aquest event cridarà el moviment del talp (procediment MoveMole) cada 500ms (TimeInterval).
Afegir l’acció de Tocar el talp
Crearem una rutina when Mole.Touched que faci el següent:
1. Incrementar el marcador (valor de la variablescore).
2. Cridar la rutina call UpdateScore per mostrar el nou marcador.
3. Fer vibrar el telèfon durant 100 milisegons cada segon.
4. Cridar la rutina call MoveMole per a que el talp es mogui inmediatament, enlloc d’esperar al timer.
Posar el marcador a zero
Fer que el botó ResetButton canviï el valor de la variable score (marcador) a zero i cridi call Update score
Programa complet: