2.20 JUEGO - No Toques la Baldosa Blanca¶
Estoy seguro de que muchos de vosotros habéis jugado a este juego en vuestros teléfonos móviles. Se juega tocando baldosas negras que aparecen aleatoriamente para sumar puntos, la velocidad se incrementa progresivamente. Si tocas una baldosa blanca o te pierdes una negra, el juego termina.
Ahora usaremos PictoBlox para replicarlo.
Inserta dos módulos de evitación de obstáculos IR verticalmente en el protoboard. Cuando pongas tu mano sobre uno de los módulos IR, aparecerá un punto parpadeante en el escenario, representando que se ha realizado un toque.
Si tocas la baldosa negra, la puntuación aumenta en 1, si tocas la blanca, disminuye en 1.
Necesitas decidir si colocar tu mano sobre el módulo IR de la izquierda o sobre el de la derecha, dependiendo de la posición de la baldosa negra en el escenario.
Componentes Necesarios¶
Para este proyecto, necesitamos los siguientes componentes.
Es definitivamente conveniente comprar un kit completo, aquí está el enlace:
Nombre |
ELEMENTOS EN ESTE KIT |
ENLACE |
---|---|---|
3 in 1 Starter Kit |
380+ |
También puedes comprarlos por separado en los siguientes enlaces.
INTRODUCCIÓN DEL COMPONENTE |
ENLACE DE COMPRA |
---|---|
Construye el Circuito¶
El módulo de evitación de obstáculos es un sensor de proximidad infrarrojo ajustable en distancia cuya salida es normalmente alta y baja cuando detecta un obstáculo.
Ahora construye el circuito según el diagrama a continuación.
Programación¶
Aquí necesitamos tener 3 sprites: Tile, Left IR y Right IR.
Sprite Tile: se utiliza para lograr el efecto de alternar baldosas negras y blancas hacia abajo. En el móvil, este juego generalmente tiene 4 columnas, aquí solo haremos dos columnas.
Sprite Left IR: se utiliza para lograr el efecto de clic. Cuando el módulo IR izquierdo detecta tu mano, enviará un mensaje - Left al sprite Left IR, permitiéndole empezar a funcionar. Si toca la baldosa negra en el escenario, la puntuación aumentará en 1, de lo contrario, disminuirá en 1.
Sprite Right IR: Su función es básicamente la misma que Left IR, excepto que recibe la información Right.
1. Pintar un sprite Baldosa.
Elimina el sprite por defecto, pasa el ratón sobre el icono Add Sprite, selecciona Paint y aparecerá un sprite en blanco y nómbralo Tile.
Ve a la página Costumes y usa la herramienta Rectangle para dibujar un rectángulo.
Selecciona el rectángulo y haz clic en Copy -> Paste para hacer un rectángulo idéntico, luego mueve los dos rectángulos a una posición alineada.
Selecciona uno de los rectángulos y elige un color de relleno negro.
Ahora selecciona ambos rectángulos y muévelos para que sus puntos centrales coincidan con el centro del lienzo.
Duplica el disfraz1, alternando los colores de relleno de los dos rectángulos. Por ejemplo, el color de relleno del disfraz1 es blanco a la izquierda y negro a la derecha, y el color de relleno del disfraz2 es negro a la izquierda y blanco a la derecha.
2. Programación del sprite Baldosa
Ahora regresa a la página Blocks y establece la posición inicial del sprite Tile para que esté en la parte superior del escenario.
Crea una variable - blocks y dale un valor inicial para determinar el número de veces que aparecerá el sprite Tile. Usa el bloque [repeat until] para hacer que la variable blocks disminuya gradualmente hasta que blocks sea 0. Durante este tiempo, haz que el sprite Tile cambie aleatoriamente de disfraz.
Tras hacer clic en la bandera verde, verás el sprite Tile en el escenario cambiando rápidamente de disfraces.
Crea clones del sprite Tile mientras la variable blocks disminuye, y detén la ejecución del script cuando bloques sea 0. Aquí se usan dos bloques [wait () seconds], el primero para limitar el intervalo entre los clones de Tile’s y el segundo para permitir que la variable bloques disminuya a 0 sin detener el programa inmediatamente, dándole al último sprite baldosa tiempo suficiente para moverse.
Ahora programa el clon del sprite Tile para que se mueva lentamente hacia abajo y lo elimine cuando alcance la parte inferior del escenario. El cambio en la coordenada y afecta la velocidad de caída, cuanto mayor sea el valor, más rápida será la velocidad de caída.
Oculta el cuerpo y muestra el clon.
3. Leer los valores de los 2 módulos IR
En el fondo, lee los valores de los 2 módulos IR y realiza las acciones correspondientes.
Si el módulo IR de evitación de obstáculos izquierdo detecta tu mano, emite un mensaje - left.
Si el módulo IR de evitación de obstáculos derecho detecta tu mano, emite un mensaje - right.
4. Sprite IR Izquierdo
De nuevo, pasa el ratón sobre el icono Add sprite y selecciona Paint para crear un nuevo sprite llamado Left IR.
Ve a la página Costumes del sprite Left IR, selecciona un color de relleno (cualquier color fuera de negro y blanco) y dibuja un círculo.
Ahora comienza a programar el sprite Left IR. Cuando se reciba el mensaje - left (el módulo receptor IR de la izquierda detecta un obstáculo), determina si se ha tocado el bloque negro del sprite Tile, y si es así, haz que la variable count aumente en 1, de lo contrario disminúyela en 1.
Nota
Necesitas hacer que el sprite Tile aparezca en el escenario y luego absorber el color del bloque negro en el sprite Tile.
Ahora hagamos el efecto de detección (aumento y disminución) para Left IR.
Haz que el sprite Left IR se oculte cuando se haga clic en la bandera verde, se muestre cuando se reciba el mensaje - left, y finalmente se oculte de nuevo.
5. Sprite IR Derecho
Copia el sprite Left IR y renómbralo a Right IR.
Luego cambia el mensaje recibido a - right.
Ahora toda la programación está completa y puedes hacer clic en la bandera verde para ejecutar el script.