Pong para dos jugadores

Objetivos

 

  • Manejar dos entradas analógicas.
  • Crear objetos Arduino.
  • Aprender a exportar e importar objetos completos.
  • Introducir los sonidos en S4A.
  •  

    Material requerido.

    ArduinoUNO Arduino Uno o compatible y con el firmware para S4A cargado.

    Un PC con el entorno S4A correctamente instalado y configurado.

    Img_3_4  Una Protoboard.
    potenciómetro keyes Uno o dos potenciómetros de 10KΩ
    Img_3_6 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.

    funcion barra eje y s4a

     

    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.

    nuevo objeto arduino s4a

    Si elegimos crearlo nos saldrá un cuadro de diálogo como este:

    elegir conexion

    • 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.

    2 barras pong s4a

    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”.

    barra ratón s4a

     

    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.

    exportar scratch objetos

    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.

    importar objetos completos

     

    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 …”.

    posicion inicial pelota

    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.

    direccion rebote barra

    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.

    porteria pong s4a

    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.

    fijar 0 puntos

    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.

    contar 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.

    puntos completo pong 2j

    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.

    pong 2 jugadores s4a

     

    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.

    pestaña sonidos s4a

    Los bloques relacionados con los sonidos están en la categoría “Sonido”.

    categoría bloques sonidos

    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.

    sonidos en pong s4a

    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.

    escenario pong 2j s4a

     

    RESUMEN DE LA SESIÓN

     

    En esta sesión hemos aprendido varias cosas importantes:

  • Existen diferentes tipos de objetos en S4A, y sabemos cómo crearlos en función de lo que necesitemos.
  • Podemos reutilizar objetos en otros proyectos.
  • Sabemos cómo crear sonidos y utilizarlos en nuestro programa.
  •  

    Deja una respuesta