PONG en SCRATCH - ¡FELIZ DÍA DE LA PROGRAMACIÓN!

Hoy, 13 de septiembre, es el Día de la Programación, pero, ¿por qué?

- Es el día 256 del año.

- Es la mayor potencia de 2 siendo menor de 365.

- Es el mayor número que se puede representar con un byte (8 bits).


Es por ello que hoy quiero compartir con vosotros cómo hacer un videojuego como el Pong en Scratch en SOLO 10 PASOS como el que te enseño a continuación. ¡Comencemos!

1º. Seleccionamos un fondo, en este caso, seleccionaremos un fondo negro y eliminamos el gato por defecto.



2º. Dibujamos las palas laterales y la pelota.


3º. Al pulsar la bandera verde, las palas irán a (+-220, 0) y la pelota a (0, 0).




4º. Haremos el siguiente sistema de movimiento: las palas se moverán arriba y abajo con, dependiendo de la pala que sea, unas teclas u otras. Utilizaremos un "Por siempre" y unos "Si" :

- La "Pala 1" (la de la derecha) se moverá con las flechas arriba y abajo.



- La "Pala 2" (la de la izquierda) se moverá con la W y la S (arriba y abajo).


5º. Creamos una variable que indicará el estado del juego, puede tener dos valores: 1 y 0 (True y False en boolean), siendo 1 = ACTIVO y 0 = PARADO.
Siempre y cuando esta variable sea 1, la pelota estará en movimiento todo el rato. La pelota siempre se moverá 5 pasos si se cumple la condición de que esté activo (Estado == 1)


6º. Ahora la pelota está en constante movimiento hacia la derecha, pero queremos que al salir, salga en una dirección aleatoria, para ello, le pondremos en dirección un número aleatorio entre 0 y 360. También pondremos que de tocar un borde, la pelota rebote.


Podemos ver que en algunos casos, la pelota rebota verticalmente, lo cual no nos interesa, pero próximamente lo arreglaremos.

7º. Para terminar con el movimiento de la pelota, pondremos que al tocar el color de las palas (blanco) rebote. Lo haremos de la siguiente manera: con un "Por siempre" y dentro un "Si", el cual tendrá como condición estar tocando el color blanco. Dentro pondremos que la dirección en la que apunte sea la que tiene en el momento de tocarlo invertida, para ello utilizaremos el operador de resta, dejaremos el primer hueco en blanco (lo tomará como un 0) y en el segundo hueco ponemos la dirección actual de la pelota. De esta manera estamos haciendo el número opuesto de la dirección de la pelota.


8º. Ahora que tenemos los sistemas de movimiento tanto de las palas como de la bola, vamos a configurar el puntaje y los marcadores. Crearemos dos variables, una para los puntos del jugador 1 y otra para los puntos del jugador 2. Pondremos que cuando la posición en X de la pelota sea superior a 230, que será donde ya haya sobrepasado las palas, se añada un punto al jugador 1 (el de la izquierda), haremos lo mismo con el jugador 2, pero la condición será que la posición en X de la pelota sea -230.


9º. Vemos que, cuando la pelota sobrepasa la pala, suma más de un punto y no vuelve a su posición inicial, para que esto sí que pase, haremos lo siguiente:
- Parar el juego, para eso cambiaremos la variable Estado a 0, de forma que la pelota se quedará paralizada por completo.
- Mandaremos a la pelota a las coordenadas (0, 0).
- Esperamos varios segundos (la espera que queramos que suceda entre punto y punto) y cambiamos la variable Estado a 1 para que vuelva a moverse.


10º. Notaremos una cosa respecto al paso nueve, y es que al empezar el juego, en el caso de que la variable Estado sea igual a 0, en ningún momento la pelota se moverá, por lo que tenemos que asignar el valor 1 a Estado en cuanto empiece el juego. También notaremos que al volver la pelota al centro, saldrá en la misma dirección que estaba antes, es por ello que también añadiremos un par de bloques para que la dirección sea completamente aleatoria de nuevo.


11º. Nos falta un par de cosillas para terminar: reiniciar los marcadores de la puntuación de cada jugador al inicio del juego y ocultar la variable Estado de la pantalla. Las otras dos variables podemos elegir si mantenerlas como están o ponerlas en vista de solo número y moverlas al lugar del jugador correspondiente.



Ya tendríamos el juego terminado, o al menos su base, si quieres saber qué ampliaciones puedes hacer al juego, como añadir marcadores al juego, determinar la dirección de salida para que no rebote en vertical, determinar la velocidad de la pelota dependiendo de una dificultad X, entre otras cosas, te recomiendo seguirme, ya que próximamente, publicaré una lista de ampliaciones que se pueden hacer al juego para que se vea mejor.

Comentarios