Videojuego de Pong programado con Scratch 2.0

Aprende a programar utilizando Scratch el videojuego de Pong en su versión para 2 jugadores.

Etiquetas: Programación Scratch Scratch 2 Primaria Secundaria Videojuegos Pong

Introducción

En este tutorial con Scratch 2.0 te explicamos cómo programar el videojuego de pong en su versión para dos jugadores. El videojuego consiste en hacer rebotar la pelota sin tocar los laterales de la pantalla en cuyo caso acumulará puntos para tu rival.

Videojuego de pong con Scratch
Videojuego de pong con Scratch

Reinventa, programa y comparte

Antes de continuar con las lecciones de este curso de programación con Scratch te recomendamos seguir los siguientes pasos para reinventar y obtener todas las imágenes utilizadas en el videojuego gratis.

  • Reinventa el proyecto Pong 2 Jugadores (base) para obtener todas las imágenes.
  • Programa el videojuego siguiendo los videotutoriales de las siguientes lecciones.
  • Comparte el proyecto y si está entre los mejores aparecerá en la sección Mejores proyectos.

Escenario

Escenario del videojuego

En primer lugar creamos 4 escenarios. Los 3 primeros corresponden a la cuenta atrás antes del inicio del juego (3, 2 y 1). El último escenario será la pantalla principal.

escenario del videojuego
escenario del videojuego

Programación del escenario

Creamos el evento "inicializa" destinada al cambio de fondos. De esta forma siempre que la invoquemos al evento "inicializa", empezará la cuenta atrás mostrando los diferentes fondos.

Por último invocamos al evento "Comienza juego" al presionar la bandera verde.

Observar que si durante el transcurso del videojuego volvemos a invocar a la función inicializar, los fondos volverán a cambiarse.

Programación del escenario
Programación del escenario


Pelota

Programación de la pelota

Añadimos al escenario el objeto que utilizaremos como bola y ajustamos el tamaño deseado.

A continuación inicializamos los valores por defecto que tomará dicho objeto. En este caso, la posición va a ser la posición 0 en el eje X y la posición 0 en el eje Y, es decir, la posición (0,0).

Además le tenemos que añadir un ángulo aleatorio de giro. En este caso optamos por un ángulo comprendido entre 45º y 135º para intentar que el ángulo sea lo más horizontal posible.

Programación de la pelota
Programación de la pelota

Como se puede observar la velocidad de la bola será siempre la misma. Si queremos que cambie tenemos que guardar el valor en una variable. Con lo cual, creamos una variable llamada velocidad.

Siempre que se utilizan variables debemos de inicializarlas a un valor por defecto. En este caso le asignamos el valor en la función principal Presionar bandera verde.


Jugadores

Jugadores del videojuego

Mediante el editor de fondos o con ayuda de otro software extreno, creamos las palas de lo ambos jugadores, cada una de un color.

En primer lugar se inicializan las posiciones origen de cada paleta, en su eje x e y respectivamente. A continuación al recibir la llamada del evento Comienza juego cambiamos las posiciones de la coordenada vertical para que la paleta suba o baje según la tecla presionada.

Por último, modificamos la programación de la bola para que rebote no sólo cuando toca un borde, sino que además deberá rebotar si toca cualquiera de las paletas.

Jugadores del videojuego
Jugadores del videojuego


Mejoras

Mejoras aplicadas al videojuego

Se crean 2 variables donde almacenaremos los puntos de cada jugador. De este modo cada vez que la bola toque un borde opuesto al jugador, este sumará 1 punto. Para detectar dichos bordes, nos ayudamos de las coordenadas sobre el eje horizontal X, detectando si el valor de X es menor o igual casi el total del borde de la pantalla.

Mejoras aplicadas al videojuego
Mejoras aplicadas al videojuego


Dudas en YouTube

En esta lección vamos a responder a una duda muy común que suele aparecer en este tipo de videojuegos cuando se cambia un objeto de dirección durante el transcurso del videojuego. Esta duda la plantea Jordi a través de un comentario en nuestro canal de YouTube.

Duda de Jordi
Duda de Jordi

Problema

Cuando el objeto Bola toca al objeto Player 1 o Player 2, realizamos el cambio de dirección mediante la ecuación matemática (dirección * -1) y además le añadimos una pequeña desviación de 5º. El problema es que según varios factores (tamaño de la bola, velocidad de nuestro ordenador, etc.) se realizan varios cambios de dirección, sin que la bola llegue a desplazarse, lo que crea el efecto de que la bola queda enganchada a la paleta como comenta Jordi en el comentario.

Solución

Para solucionarlo basta con añadir un bloque para que la bola se desplace obligatoriamente justo después de cambiar de dirección, y de esa forma, evitar que vuelva a tocar la paleta en el mismo instante.

Duda resuelta
Duda resuelta


Mejores proyectos

legoman_7
legoman_7

pablorubma
pablorubma


Retos de Scratch

Si ya has completado todas las lecciones del tutorial te proponemos resolver los siguientes retos de programación con Scratch.

Reto 1: El primero en llegar a 10 puntos gana

Si juegas durante mucho tiempo te derás cuenta que el videojuego no termina nunca. En este reto te propongo añadir a la programación una condición que muestre un mensaje por pantalla cuando un jugador llegue a 10 puntos. Esta programación deberás realizarla en el escenario.

El primero en llegar a 10 puntos gana
El primero en llegar a 10 puntos gana


Materiales

  • VideoJuego de Pong Pong.sb2
  • Reto 1: Evitar atravesar las paredes Reto-1.sb2

Contribuciones

¿Has encontrado algún error en el contenido? ¿Te gustaría colaborar en el proyecto?
Edita esta página en GitHub y aparecerás en este apartado.

Miguel Ángel Abellán

Síguenos


A menos que se especifique lo contrario, todos los contenidos de este proyecto están bajo una licencia de Creative Commons Reconocimiento-CompartirIgual 4.0 Internacional.

This project is Open Source on GitHub and made with by @migueabellan

2015-2019 Asociación Programo Ergo Sum