Objetivos
Material requerido.
Arduino Uno o compatible y con el firmware para S4A cargado.
Un PC con el entorno S4A correctamente instalado y configurado. |
|
Una Protoboard. | |
Uno o dos potenciómetros de 10KΩ | |
Algunos cables de Protoboard.. |
PLANTEAMIENTO
Como ya comentamos, Atari Pong supuso una revolución en la historia de los videojuegos. Dos funciones novedosas que incluía fueron:
- Tenía sonido.
- Llevaba la cuenta de la partida. En otras plataformas había que apuntar los puntos en un papel.
En esta sesión vamos a hacer un Pong para dos jugadores, y a incluir esas dos funcionalidades. Si estáis utilizando estas sesiones en una clase de tecnología de algún colegio, podéis poneros por parejas para hacerla, y de paso ver quién gana echando una partida.
El montaje será el mismo que en la sesión 12, pero añadiendo un segundo potenciómetro. Si no tenéis dos potenciómetros vamos a explicar la manera de manejar una de las barras con el ratón del ordenador.
Vamos a reutilizar parte del programa de la sesión anterior, pero cambiando y añadiendo algunas cosas. Empezaremos modificando la barra que ya tenemos y creando una segunda barra.
Para aprovechar que el escenario es más grande en el eje X, vamos a hacer el campo en sentido horizontal, por lo que modificaremos el dibujo y el programa de la barra de la sesión anterior para hacer que esté en vertical y se mueva en el eje Y.
NUEVO OBJETO ARDUINO
Hasta ahora hemos creado objetos siempre de la misma manera. Pero si queremos crear un objeto que tenga acceso a las entradas y salidas digitales y analógicas como la barrra, necesitaremos crear un objeto Arduino.
- Los objetos Arduino proporcionan bloques para las funcionalidades básicas del microcontrolador, escrituras y lecturas digitales y analógicas, y otras funcionalidades de alto nivel.
- También encontraremos bloques para tratar con motores estándar y servomotores de rotación continua (los utilizaremos en sus respectivas sesiones más adelante).
Para crear, dibujar o importar un objeto Arduino haremos click en los botones que hay en la parte superior derecha del listado de objetos.
Si elegimos crearlo nos saldrá un cuadro de diálogo como este:
- Si quisiéramos utilizar una segunda placa Arduino para controlar el objeto, seleccionaríamos “Nueva conexión”.
- Como vamos a usar la misma placa, seleccionamos “Utilizar la conexión del objeto Barra”.
Como en este caso queremos hacer un objeto igual que la barra, podríamos simplemente darle con el botón derecho del ratón al objeto de la barra y darle a duplicar.
Una vez creada renombraremos los objetos como Barra1 y Barra2, por aquello de la limpieza el orden.
Tendremos que modificar el programa de la segunda barra para posicionarla en el lado opuesto del escenario. También dibujaremos dos líneas de colores diferentes detrás de las barras igual que en la sesión anterior.
Si no tenemos dos potenciómetros, podemos controlar una de las barras con el ratón, con el bloque de “Sensores” “y del ratón”.
EXPORTAR E IMPORTAR OBJETOS
En S4A existe la posibilidad de exportar objetos para guardarlos y utilizarlos en otros proyectos. Supongamos que hemos empezado un proyecto nuevo para esta sesión y queremos reutilizar la pelota de la sesión 12 para modificarla y así ahorrarnos trabajo.
Si abrimos el programa del Pong para un jugador y en el listado de objetos hacemos click con el botón derecho en la pelota, o en cualquier otro objeto, veremos que nos da la opción de exportar objeto.
Nos saldrá un cuadro de diálogo y podremos elegir dónde guardarlo.
Si ahora desde otro proyecto, en este caso el Pong para dos jugadores, damos a “Escoger un nuevo objeto desde archivo” o a “Escoger un nuevo objeto Arduino desde un fichero” en función del tipo de objeto que sea, y buscamos el objeto que hemos exportado, tendremos en el nuevo proyecto el objeto con todos los disfraces y programas incluidos.
MODIFICANDO LA PROGRAMACIÓN DE LA PELOTA
Lo primero que haremos será modificar la posición inicial de la pelota y la dirección inicial del movimiento.
- Fijamos la posición al centro del escenario, x=0, y =0.
- Hacemos que la pelota comience apuntando a una de las barras, utilizando el bloque “apuntar hacia …”.
Ahora tenemos que cambiar la función en la que hacemos que rebote la pelota al tocar la barra, para que rebote si toca cualquiera de las dos. Utilizaremos el bloque de “Operadores” “… o …“.
También cambiaremos la forma en que cambia de dirección al rebotar, ya que ahora las barras están en vertical.
Haremos una función igual que la que detectaba si la pelota tocaba el color rojo, pero tocando el color que está detrás de la otra barra, en este caso azul, y les quitaremos a ambas los bloques que mostraban el tiempo y detenían los programas.
La función en la que subimos la velocidad de la bola cada 10 segundos, la dejaremos igual para darle un poco de emoción al juego.
Con esto ya tenemos la parte principal del videojuego, pero ahora vamos a introducir las mejoras de las que hablábamos.
CONTANDO LOS PUNTOS: MARCADOR
Para poder llevar la puntuación, necesitamos crear dos variables, “puntosrojo” y “puntosazul” que inicializaremos a 0.
Hacemos que si toca la línea azul sume un punto a “puntosrojo” y si toca la roja a “puntosazul”, así iremos contando los puntos.
También tenemos que hacer que una vez sumado el punto, la pelota vuelva al centro y empiece a moverse hacia la mitad de campo del que ha perdido el punto, en dirección a la barra.
- Fijamos la posición de la bola al centro de la pantalla.
- Fijamos la velocidad a 0 durante 2 segundos para dar tiempo a prepararnos.
- Utilizaremos el bloque “apuntar hacia”, seleccionando la barra que corresponde en cada caso.
- Volvemos a fijar la velocidad a 4.
- Reiniciamos el cronómetro, para que vuelva a empezar a subir la velocidad cada 10 segundos.
Ya sólo nos queda hacer que si uno de los jugadores llega a 3 puntos, acabe la partida y muestre quien es el ganador.
- Utilizaremos el bloque de “Control” “si …”, y el operador “… = …” para comparar las variables “puntosrojo” y “puntosazul” con 3 (o los puntos que queráis que haya que alcanzar para ganar).
- La comparación hay que hacerla después de que hayamos sumado el punto al marcador.
- Mostraremos un mensaje en pantalla con el ganador utilizando el bloque de “Apariencia” “decir por segundos” durante 5 segundos.
- Utilizaremos el bloque de “Control” “detener todo” para parar los programas de todos los objetos si un jugador gana la partida.
CÓMO AÑADIR SONIDOS A NUESTROS PROGRAMAS
En S4A los sonidos se crean y se añaden al programa de forma muy similar a los disfraces. Seleccionamos el objeto al que queremos añadirle sonido, en este caso la bola, y damos a la pestaña “Sonidos”. Funcionan de forma parecida a los disfraces.
Podemos grabarlos o utilizar sonidos que tengamos guardados. Yo voy a utilizar tres sonidos de los que vienen por defecto al instalar S4A, uno para el rebote con la barra, otro para cuando se haga un punto y otro cuando alguien gane la partida.
Los bloques relacionados con los sonidos están en la categoría “Sonido”.
Vamos al programa de la pelota y utilizamos el bloque “tocar sonido …”, seleccionando en el menú desplegable el sonido que queramos.
- Usamos el sonido “Pop” cuando rebote con cualquiera de las barras.
- “WaterDrop” cada vez que haya un punto.
- “Bell Toll” cuando alguien gane la partida.
Ahora sí hemos terminado nuestra propia versión de Atari Pong. Podéis descargar el programa completo aquí: Pong 2j.
- Recordad que podéis ponerlo a pantalla completa y mostrar en el escenario los puntos que lleva cada uno marcando en el listado de bloques las variables donde los guardamos.
- Si hacemos click con el botón derecho en una variable en el escenario podemos elegir el formato para mostrarlas.
RESUMEN DE LA SESIÓN
En esta sesión hemos aprendido varias cosas importantes: