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.
4. Baixeu-vos la imatge del talp i
desa-la a l'ordinador.
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 un ImageSprite 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
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’etiqueta ScoreLabel.
Definir el
procediment MoveMole
1. A l’editor de blocs, a la secció Built-In, obre el calaix de procediments (Procedures), arrossega un bloc to procedure i canvia l’etiqueta procedure per MoveMole.
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 bloc to procedure i canvia l’etiqueta procedure per UpdateScore.
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
Clock MoleTimer.
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 variable score).
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:
No hay comentarios:
Publicar un comentario