¿Te gusta el tenis? Scratch está lleno de ideas. Podemos implementar prácticamente cualquier cosa en Scratch y desde cualquier recurso disponible Los videojuegos son ideales en lo que respecta a la formación en programación. ¿Algún videojuego? Bueno, seamos realistas: scratch es una herramienta limitada y, aunque la tecnología lo permite, crear ciertas cosas es insostenible.
Pero podemos crear muchos juegos. En efecto, Piensa en un juego de arcade y puedes llevarlo a Scratch. Los juegos de arcade son los de los juegos de arcade de hace unos años que son el inicio del níquel y el disfrute. Nuestro proyecto Friday Scratch de hoy trata sobre juegos, juegos clásicos y juegos de arcade: tu primer juego de rascar.
Se llama pong, lo llamamos “tenis”.
Esto es parte de nuestro catálogo de los primeros proyectos en el Club de Jóvenes Programadores de la Universidad de Valladolid. Uno de cada tres y posiblemente el más atractivo para muchos chicosque vinculan la programación directamente con la creación de videojuegos (aunque ya lo hemos visto funcionar en muchas otras áreas también).
El juego que proponemos hoy se basa en el original Apestar, Una de las primeras salas de juego de la historia, publicada en 1972 con gran acierto. Es extremadamente fácil de usar: dos barras, una para cada jugador, son verticales, una en cada extremo de la pantalla y una bola que se mueve por la pantalla. El objetivo es que la pelota pegue en cada barra y que un jugador pierda si la deja pasar.
El contexto
Podríamos hacer un clon del pong original, pero tomamos el poder de Scratch y le dimos un giro para que se pareciera más a una realidad que nos rodea: tenislo que generalmente llamamos así para que los niños puedan relacionarlo con el popular deporte de raqueta.
El funcionamiento es comparable al del pong original: permite que dos jugadores controlen una de las barras al mismo tiempo, y la bola se mueve libremente en el escenario. Estos son los tres objetos necesarios: dos varillas y una pelota.
En este punto, puedes empezar decorando el proyecto a nuestro gusto. Por ejemplo poner el piso de una cancha de tenisEscoge colores para las barras de cada jugador o elige también la ‘pelota’ que puede ser una pelota de tenis (Scratch la incluye en sus objetos estándar), una pelota de fútbol, una cara redonda, un botón … lo que prefiramos.
Dar movimiento a las barras
Una vez que hemos creado y preparado los objetos, podemos empezar a implementar la programación. Puede ser una idea interesante realizar un anteproyecto Esto nos permite predecir qué interacciones existirán entre qué objetos o cómo se moverá cada uno de ellos. Depende del nivel y la edad de los niños.
En general, se comienza primero con las barras que son más fáciles de usar. La inicialización de las barras, es decir, lo que ocurre en cuanto pulsamos la bandera verde, consiste en:
- Asigne una posición inicial que generalmente esté centrada en relación con la vertical (valor y = 0).
- Aparecen “de pie” con una determinada dirección. Esta dirección depende de cómo hicimos el disfraz. Por lo tanto, cada caso es específico y debe resolverse por separado.
- También es útil asignar un nombre específico a cada barra, ya que se definen como Sprite1 y Sprite2 de forma predeterminada. Podemos llamarlos barras azules o rojas, o Jugador 1 y Jugador 2 para que sigan una nomenclatura lógica que nos ayudará a explicar algunas partes del juego más adelante.
Mover las barras del reproductor es muy simple: se mueven hacia arriba y hacia abajo, nada más que presionar ciertas teclas. Como tenemos dos jugadores, uno usa algunas teclas (por ejemplo, W y S) y el otro (flechas arriba y abajo) usa las instrucciones cuando se presiona la tecla […] (Categoría Eventos, marrón).
La implementación del movimiento se puede realizar de varias formas, aunque lo más fácil suele ser apuntar y luego moverse. Apuntaremos en la dirección en la que queremos movernos y luego moveremos un cierto número de pasos. Cuantos más pasos, más rápido se mueve la barra y viceversa. Si la dirección cambia, su barra también puede girar y perder su verticalidad. en este caso Necesitas cambiar el disfraz o cambiar el estilo de rotación..
Una vez que hemos implementado este código, debemos probarlo y verificar que funciona correctamente. Si es así, podemos seguir moviendo la bola.
Dar movimiento a la pelota
Las barras de cada jugador ya se mueven correctamente, pero la bola permanece lenta en la posición en la que apareció. ¿Hacer?
Primero, piense dónde debería aparecer tan pronto como toquemos la bandera verde, es decir, tan pronto como comience el juego. La respuesta puede variar, aunque en general diremos que comienza en el centro del escenario, es decir, el centro cuyas coordenadas son x = 0, y = 0.
También debemos pensar en cuál debería ser la dirección original de la pelota. Siempre puede ser el mismo (por ejemplo, siempre a la derecha), aunque lo ideal es que tome una dirección diferente cada vez. Esto se puede implementar con la instrucción de número aleatorio (categoría de operador, color verde), mediante la cual se selecciona el rango de grados deseado. Vamos a hacerlo simple para que sea fácil de entender, para que siempre generemos un número entre 60 y 120 (recuerda que los ángulos en Scratch son diferentes a lo que entendemos en matemáticas, y que por ejemplo el correcto toma como 90).
La inicialización de la bola consta así de dos elementos:
- Asigne un punto de partida (el centro del escenario, es decir, x = 0, y = 0).
- Asignar una dirección aleatoria (en nuestro caso siempre a la derecha en un rango entre 60 y 120).
Y podemos empezar a mover la pelota. Lo que queremos es que la pelota se moverá para siemprecon lo cual simplemente tenemos que usar una eternidad (categoría de control, color amarillo) y un movimiento n pasos (categoría de movimiento, color azul) con la n que queremos. Cuanto menor sea el número, más lento se mueve y viceversa. En otras palabras, esta ‘n’ es la velocidad de la pelota.
Pero, por supuesto, nos enfrentamos a otro problema: la pelota llega al borde del escenario y se queda allí. Será necesario utilizar otra instrucción salta cuando golpea un borde (Categoría de movimiento, color azul) e integrarlo para siempre en nuestro bucle para que marque … para siempre.
En este punto, nuestra pelota se mueve libremente en el escenario y rebota en los bordes. Pero no rebotará en las barras de todos los jugadoresya que estos no son límites para scratch (solo toman los límites del escenario, es decir, la “caja” del juego, como límites).
Salta con los polos
Necesitamos seguir agregando código nuevo a la bola para ver si alguna vez toca la barra. Necesitamos un “si … entonces” (categoría de control, color amarillo) y en mi caso la condición será “tocar” [barra roja]’. En su interior podemos poner un mensaje “decir” (categoría de apariencia, color morado) para comprobar que funciona correctamente, aunque lo cambiemos más tarde
Cuando probamos nuestro proyecto veremos que cuando la bola golpea la barra, el mensaje está ahí, es decir, es simplemente “decir” en nuestro mensaje (que recuerdo haber probado) cuando debemos implementar las instrucciones necesarias para cambiar la dirección de la pelota como si estuviera chocando contra ella. Hay muchas formas de hacer esto de manera más o menos realista, pero de nuevo no vamos a estropear las cosas: invertimos la dirección, es decir, giramos 180 grados en ambas direcciones, ya que el resultado es el mismo.
La salida del código de la bola debería verse así:
Aunque aún no hemos terminado, también deberíamos Agrega la condición de salto con la otra barra. Para resolver esto, puede apoyarse en cómo implementamos el salto de barra roja y hacer algo similar.
Hasta el infinito y más allá
El tenis tiene innumerables sugerencias de mejora. Por ejemplo, ¿qué tan lejos hemos llegado para que nunca nadie pierda cómo hacer que pierdan? Es uno (tal vez lo siguiente que se debe agregar), pero no el único.
- Agrega una condición para finalizar el juego. Si un jugador no devuelve la pelota, pierde. ¿Cómo implemento esto? Esto se puede hacer de muchas maneras. Sin embargo, la forma más sencilla es agregar una pequeña línea detrás de la barra que detecta el error. Cuando la pelota golpea esta línea (se puede identificar por su color o su objeto, dependiendo de cómo trazamos la línea), el juego termina.
- ¿Estamos haciendo varios juegos? Puedes implementar Marcadores con variables, uno para cada jugador. Y que gane quien consiga 3 puntos primero, o el mejor de 5 o 7 juegos …
- … Pero también puedes limitar cada juego con el cronómetro a una determinada cantidad de segundos o minutos.
- ¿Suena demasiado fácil para ti? Mueve la pelota cada vez más rápido con una variable. Dimos una pista en la explicación anterior …
- Y por supuesto, decora el proyecto de tenis como más te guste. No tiene que ser un juego de tenis, ni tiene que ser una pelota de tenis. Puedes poner una naranja o convertir las cañas en mazas (aunque hay que tener cuidado con la forma). Puedes dejar que cada jugador elija el color de cada jugador (con diferentes disfraces) o pedir su nombre y luego pronunciar el ganador en voz alta. ¡Lo que se te ocurra!
El Friday Scratch Project es la sección donde cada cinco días de la semana proponemos una idea de proyecto y damos algunos consejos para ayudar a llevarlo a cabo. Hablamos de movimiento, figuras geométricas, historias, juegos de preguntas y respuestas y hoy un videojuego. ¿Te gustaría saber más? ¡Eche un vistazo a las ideas reunidas en este enlace y, por supuesto, cualquier sugerencia o sugerencia que tenga es bienvenida!