You are on page 1of 6

MoleMash para AppInventor 2

En el juego MoleMash , un lunar que aparece en posiciones aleatorias


en un campo de juego, y el jugador anota puntos por golpear al topo
antes de que salte lejos. Este tutorial muestra cómo
construir MoleMash como un ejemplo de un juego simple que utiliza la
animación.

Primeros pasos

Conéctese al sitio Web App Inventor y empezar un nuevo proyecto con


el nombre de "MoleMash", y también establecer la pantalla de título a
"MoleMash".
Descargue la imagen del topo a su computadora (la imagen se
encuentra en la página https://sites.google.com/site/alvarocbtis212) la
imagen se llama topo

Introducción

Vas a diseñar el juego para que el topo se mueve una vez cada medio segundo. Si se toca, la
puntuación se incrementa en uno, y el teléfono vibre. Al presionar el reinicio restablece el marcador
a cero.

Este tutorial presenta:

 ImageSprites
 Temporizadores y el reloj de componente
 Procedimientos
 La selección de números aleatorios entre 0 y 1
 Bloques de texto
 Typeblocking

Los componentes primero

Varios componentes deben estar familiarizados desde tutoriales anteriores:

 Un lienzo llamado "MiCanvas". Esta es la zona en la que el topo se mueve.


 Una etiqueta llamada "ScoreLabel" que muestra la puntuación, es decir, el número deveces
que el jugador ha tocado a la mole.
 Un botón llamado "ResetButton".

1. Arrastre estos componentes desde la paleta hasta el visor y asignar sus nombres.
2. Ponga MiCanvas encima y establecer sus dimensiones a 300 píxeles de ancho por 300
píxeles de alto.
3. Ajuste el texto de ScoreLabel a "Score: ---".
4. Ajuste el texto de ResetButton a "Reset".
5. También agregar un sonido de los componentes y el nombre de
"noise". Utilizará ruido para que el teléfono vibre cuando el topo es golpeado, similar a la
forma en que usted hizo el ronroneo gatito en HelloPurr .

Temporizadores y el componente del reloj

Es necesario hacer arreglos para que el topo salte periódicamente, y se va a hacer esto con la
ayuda de un reloj de componentes. El componente del reloj ofrece varias operaciones
relacionadas con el tiempo, al igual que le dice lo que la fecha es. Aquí, vamos a usar el
componente como un temporizador que se activa en partes internas regulares. El intervalo de
encendido se determina por la propiedad IntervaloDeCronómetro del reloj.
1. Arrastre el componente de reloj (Clock), y automáticamente entrara al el área de
componentes no visibles.
2. Modificar el nombre a "MoleTimer".
3. Establezca su TimeInterval a 500 milisegundos para que el topo se mueve cada medio
segundo. Asegúrese de que TimeEnabled este seleccionado.

Adición de una imagen Sprite

Para agregar el topo movimiento usaremos un Sprite .


Sprites son imágenes que se pueden mover en la pantalla en un lienzo. Cada sprite tiene
una velocidad y una rúbrica, y también un intervalo que determina la frecuencia con la que el
sprite se mueve a la velocidad designada. Sprites también pueden detectar cuando se
tocan. En MoleMash , el topo tiene una velocidad cero, de modo que no se mueva por sí
mismo. En su lugar, va a configurar la posición del topo cada vez que se activa el
temporizador. Arrastre un ImageSprite componente en el Visor. Encontrarás este componente en
la categoría de Dibujo y Animación de la paleta. Colóquelo dentro de MiCanvas área. Deberás
establecer estas propiedades para el Sprite Mole:
 Imagen : Cargar mole.png, que ha descargado en su computadora en el comienzo de este tutorial.
 Enabled : marcado
 Intervalo : 500 (El intervalo no importa aquí, porque la velocidad del topo es cero: no se mueve por
sí mismo.)
 Rúbrica : 0 El título no tiene importancia aquí tampoco, porque la velocidad es 0.
 Velocidad : 0,0
 Visible : activada
 Ancho : Automático
 Altura : Automático

El diseñador debe tener este aspecto. Observe cómo el Mole se inserta debajo MiCanvas en la
lista de estructuras de componentes, lo que indica que el sprite es un subcomponente del lienzo.
Definir procedimientos

Defina dos procedimientos:

 MoveMole mueve la Mole sprite para una nueva posición aleatoria en el lienzo.
 UpdateScore muestra la partitura, cambiando el texto de la ScoreLabel.

Comience con MoveMole:

 En el Editor de bloques, bajo incorporado, abra el cajón de Procedimientos. Arrastra un to


procedure do bloque y cambiar el "procedure" a la etiqueta "MoveMole".

Nota: Hay dos bloques similares: to procedure do y to procedureresult . Aquí se


debe utilizar to procedure do .

El bloque MoveMole tiene una ranura con la etiqueta "do". Ahí es donde usted pone las
declaraciones para el procedimiento. En este caso habrá dos estados: uno para establecer la
posición x del topo y uno para fijar su posición y. En cada caso, deberá definir la posición de ser
una fracción aleatoria, entre 0 y 1, de la diferencia entre el tamaño del lienzo y el tamaño de la
mole. Para crear ese valor debe usar bloques de randomfraction y la multiplicación y la resta.Usted
puede encontrar estos en el cajón de Matemáticas.
 Para construir el procedimiento MoveMole. La definición completa debe tener este
aspecto: Observe cómo los bloques se conectan entre sí: la primera instrucción utiliza el conjunto
Mole x y y para establecer la posición horizontal del topo. El valor se conecta a la toma del bloque
que es el resultado de multiplicar:
1. El resultado del bloque llamado randomfraction , es un valor entre 0 y 1
2. El resultado de restar el ancho de la mole de la anchura del lienzo
La posición vertical se maneja de manera similar.

Hecho el MoveMole, el siguiente paso es definir una variable denominada Score para mantener la
puntuación (número de toques) y darle valor inicial 0. También definir un
procedimiento UpdateScore que muestra la puntuación en ScoreLabel . El contenido real que se
muestran en ScoreLabel será el texto "Score:" sumado al valor de la puntuación .
 Para crear el "Score:" parte de la etiqueta, arrastre un bloque de texto desde el cajón de
texto. Cambie el bloque de leer "Score:" en lugar de "."
 Use un bloque de unirse a adjuntar a un bloque que da el valor de la variable score. Usted puede
encontrar el bloque de unirse en el cajón de texto.
Aquí está cómo anotar y UpdateScore debe buscar:

Añadir un temporizador

El siguiente paso es hacer que el topo se mantega en movimiento. Aquí es donde vamos a usar el
MoleTimer. Los componentes de reloj tienen un controlador de eventos llamado When... Timer
do que se dispara repetidamente a una tasa determinada por el TimerInterval.
Configure el procedimiento de MoleTimer llamado MoveMole cada vez se active el temporizador,
mediante la construcción del controlador de eventos como éste:

Note como el lunar comienza a saltar por teléfono tan pronto como lo define el controlador de
eventos. Este es un ejemplo de cómo las cosas en App Inventor comienzan a suceder
instantáneamente, tan pronto como usted los defina.
Añade un toque de controlador Mole

El programa debe incrementar la puntuación cada vez que el topo se toca. Sprites, como lienzos,
responden al tacto de eventos. Por lo tanto hay que crear un controlador de eventos para el
tacto Mole que:
1. Incrementa la partitura.
2. Pide UpdateScore para mostrar la nueva puntuación.
3. Hace que el teléfono vibre durante 1/10 de segundo (100 milisegundos).
4. Pide MoveMole para que el topo se mueve de inmediato, en lugar de esperar a que el
temporizador cambie.
Aquí es lo que parece esto en bloques. Seguir adelante el bloque whenMole.Touched como se
muestra.

He aquí un consejo: Puede utilizar typeblocking : para crear rápidamente bloques.


 Para crear un bloque de valores que contiene 100, sólo tienes que escribir 100 y pulse Intro.
 Para crear un bloque MoveMole , sólo tienes que escribir MoveMole y seleccione el bloque que
desee de la lista

Reiniciar la puntuación

Un detalle final es restablecer la partitura. Eso es simplemente cuestión de hacer


que ResetButton cambie el marcador a 0 llamándolo UpdateScore .

Programa completo

Aquí está el código completo MoleMash: