Técnicas para videojuegos
Introducción
Scratch se utiliza esencialmente para crear y desarrollar videojuegos. Aprender divirtiéndose es el lema del MIT Media Lab, que desarrolló este lenguaje de programación.
En este capítulo, me gustaría presentarle las principales técnicas utilizadas en los videojuegos. Veremos que hay varias formas de mover un personaje, dependiendo de cómo quiera renderizarlo. Aprenderá a mostrar diferentes niveles en su juego y a crear niveles introductorios para presentar su juego y sus reglas.
Otras técnicas complementarias se tratarán en los capítulos dedicados a los juegos.
Técnicas de desplazamiento
1. Utilizando las teclas del teclado
Para controlar el movimiento de un objeto, es necesario asociar una acción de tipo movimiento a una tecla del teclado. Las teclas de dirección son las más utilizadas en los videojuegos para controlar el movimiento del jugador. El bloque para seleccionar teclas se encuentra en la categoría Eventos.
Aquí tiene dos ejemplos de programas para mover el objeto utilizando las flechas del teclado (u otra tecla de su elección). Estos programas están formados por bloques construidos de la misma manera:
-
Un bloque de tipo Eventos para definir la tecla.
-
Un bloque de tipo Movimiento para determinar el tipo de movimiento.
Primer ejemplo

al presionar tecla flecha derecha
mover 10 pasos // el objeto se desplaza a la derecha del escenario.
al presionar tecla flecha izquierda
mover -10 pasos // el objeto se desplaza hacia la izquierda del escenario.
Este programa no permite mover el objeto hacia arriba o hacia abajo en el escenario. además, el bloque mover -10 pasos efectivamente mueve el objeto hacia la izquierda, pero el objeto se mueve... ¡hacia atrás! Si quiere que el objeto se mueva hacia la izquierda mientras mira hacia la izquierda, necesitará añadir un bloque que defina su orientación apuntar en dirección ().
Para mover un objeto horizontal o verticalmente utilizando solo dos bloques, basta con cambiar su coordenada x o y.
-
sumar a x () para el desplazamiento horizontal.
-
sumar a y () para el desplazamiento vertical.

al presionar tecla flecha izquierda
sumar a x -10 // como el valor es negativo, el objeto se mueve a la izquierda del escenario.
al presionar tecla...
Técnicas para saltar
Muchos juegos requieren que el jugador sea capaz de saltar; el más famoso es el de Mario. Al igual que con el movimiento, se pueden utilizar varios algoritmos para hacer que su objeto salte, dependiendo del efecto deseado. Vamos a ver dos técnicas para hacerlo saltar y otra para hacerlo saltar y avanzar.
1. Un objeto que salta
Dependiendo del juego, es posible que el jugador tenga que saltar, sobre todo en los juegos de plataformas que utilizan el desplazamiento para que el fondo se desplace.
Para crear un salto, hay que descomponer el movimiento: el objeto sube - se detiene - y luego vuelve a bajar. La estructura de la pila de bloques utilizada para saltar tiene los siguientes bloques:
-
Un primer bloque de Eventos: para especificar la tecla que desencadenará la acción, el salto.
-
Un segundo bloque de Movimiento: como se trata de un salto, y por tanto de un movimiento vertical, la posición del objeto se modificará verticalmente (coordenada y). Para el ascenso, el valor será positivo.
-
Un tercer bloque de Control: para marcar una pausa entre el ascenso y el descenso.
-
Un cuarto bloque de Movimiento: para mover el objeto hacia abajo asignando un valor negativo a su coordenada y.
Primer programa
al presionar tecla espacio
sumar a y 50 // el valor especificado depende de la altura que quiera que alcancen sus saltos.
esperar 0.2 segundos // especifique el tiempo de espera en el cuadro de entrada según el efecto deseado. Cuanto menor sea el tiempo, más realista será el efecto.
Sumar a y -50 // si quiere que su objeto retroceda al mismo punto, el valor especificado debe ser el mismo que el valor de salto, pero negativo.

Segundo programa
Para conseguir un salto visualmente más suave, vamos a utilizar el bloque deslizar en () segundos. Este bloque tiene un campo de entrada y se puede utilizar para controlar la velocidad del movimiento. A diferencia del ejemplo anterior, no necesitaremos utilizar el bloque esperar () segundos.
El objeto saltará sin moverse horizontalmente. Por tanto, su posición x no se modificará durante el salto. Para ello se utiliza el bloque posición en x (categoría Movimiento), que almacena la coordenada...
Caída de objetos
Algunos juegos consisten en recoger objetos o evitar obstáculos que caen.

El algoritmo de gestión de la caída de los objetos se basa en el mismo principio que el salto con efecto de gravedad. Los objetos caen hasta que chocan contra el suelo u otro objeto que los detiene en su trayectoria (una cesta para los objetos que hay que recoger, un proyectil para los objetos que hay que destruir, etc.).
Para que varios elementos caigan en el escenario al mismo tiempo, vamos a utilizar la función de clonación.
Abra un nuevo proyecto e importe una imagen que represente un plátano (Bananas) de la biblioteca de objetos.
Elimine el objeto de gato que se muestra por defecto: haga clic con el botón derecho en la miniatura y elija borrar.
El programa del objeto Bananas consta de dos pilas de bloques.
Primera pila de bloques
Es el conjunto de bloques utilizados para crear un clon y definir sus características.
al hacer clic en la bandera verde
esconder // cuando se ejecuta el programa, los objetos que están a punto de caer no son visibles en el escenario.
repetir 10 // se crearán y soltarán diez clones de este objeto.
Puede establecer un número mayor o especificar que se detenga la creación de clones, por ejemplo:
-
cuando se alcanza una determinada puntuación;

-
cuando el objeto que se está reproduciendo o el clon es alcanzado...
Desplazamiento de objetos
Inspirándose en la técnica de los objetos que caen, puede mover obstáculos que se deben evitar, como las naves espaciales en un juego de disparos, de manera horizontal.
El programa consiste en dos pilas de bloques casi idénticas al programa descrito anteriormente. Esta vez el movimiento es horizontal.
Primera pila de bloques
Es el conjunto de bloques utilizados para crear un clon y definir sus características.
al hacer clic en la bandera verde
esconder // cuando se ejecuta el programa, los objetos que recorrerán el escenario no son visibles.
repetir 10 // se crearán diez clones.
ir a x: 250 y: número aleatorio entre -160 y 160 // los clones aparecerán a lo ancho de la escena, que se extiende desde -180 a 180 en el eje y. Los valores son deliberadamente más pequeños para evitar que el clon solo aparezca en la mitad del escenario. El valor x: 250 se utiliza para que el clon aparezca en el extremo derecho del escenario y se deslice horizontal y progresivamente hacia el extremo izquierdo, donde desaparecerá.
esperar número aleatorio entre 1 y 3 segundos // los clones no se crean a intervalos regulares.
Cuanto menor sea el intervalo de tiempo, más difícil resultará el juego, ya que habrá un mayor número de objetos presentes en el escenario al mismo tiempo.
crear clon de mí mismo...
Técnicas de tiro
Este libro contiene varios juegos de tiro y puntería (ver capítulos La extensión micro:bit y Juego de disparos). He aquí una técnica que le permitirá dar la impresión de que el objeto al que se dispara está siendo lanzado realmente por el elemento que lo dispara: una nave espacial disparando un misil, un personaje lanzando un globo, etc.
1. Diseño gráfico
Para este ejemplo, necesitará crear dos objetos.
-
El primer objeto, que corresponde al elemento que dispara.
-
El segundo objeto, que corresponde al objeto que es disparado.
Abra un nuevo proyecto: seleccione Nuevo en el menú Archivo.
Elimine el objeto del gato por defecto: haga clic con el botón derecho en su miniatura y elija borrar.
Abra la biblioteca de objetos haciendo clic en el icono Elige un objeto.
Seleccione el objeto que parece una varita mágica. Su nombre es Magic Wand .
En la ventana de objetos, haga clic con el botón derecho en la miniatura de este objeto y seleccione duplicar. Se ha creado un nuevo objeto. Su nombre es Magic Wand2.
Ahora tiene dos objetos. Este segundo objeto le servirá para dibujar el elemento lanzado por la varita de forma que parezca emerger de esta.
Seleccione la miniatura Magic Wand2 y haga clic en la pestaña Disfraces para abrir la paleta gráfica.
En la paleta gráfica, con la herramienta...
Técnicas para contabilizar: puntuaciones, vidas
En los juegos no solo se cuentan puntuaciones, sino también vidas. Para contar puntuaciones o vidas, la técnica es la misma: hay que crear un algoritmo utilizando una variable.
Abra el proyecto platanos.sb3 que creó anteriormente.
En la categoría Variables, seleccione Crear una variable (1).
Nombre la variable según su uso (2): Numero de platanos. Esta variable se utilizará para contar el número de plátanos recuperados.
Confirme seleccionando Aceptar (3).
Al nombrar una variable, utilice siempre nombres explícitos.

1. Contar puntos
Los plátanos deben recogerse dentro de una cesta; este es un objeto importado de la librería llamado Bowl. Cada vez que un clon del plátano toca este objeto, la variable Numero de platanos se incrementa en 1 punto: suma 1 al número de plátanos.
En informática, la incrementación consiste en añadir un valor, 1 por ejemplo, a un contador. La operación inversa, que consiste en restar un valor a un contador, se denomina decrementar.
Incorporación al programa del plátano
El programa debe comenzar por una inicialización de la variable, es decir, al arrancar, la variable Numero de platanos debe ponerse a cero. Su valor aumentará a medida que avance el juego.

En la segunda pila de bloques del programa de los plátanos...
Creación de niveles
Los videojuegos ofrecen distintos niveles que se representan gráficamente mediante un cambio en el fondo. Este cambio de nivel puede dar lugar a modificaciones como:
-
Hacer el juego más complejo.
-
La aparición de nuevos objetos.
-
Cambio de las características del objeto reproducido.
Los bloques de mensajes, situados en la categoría Eventos, son muy útiles para crear niveles y hacer más complejos sus proyectos.

1. Introducción y conclusión
Al igual que un libro, un juego comienza con una introducción, es decir, una portada en la que se exponen las reglas del juego, y termina con una conclusión, que puede consistir en un Game Over o la visualización de la puntuación obtenida, etc.
Para desarrollar un proyecto multinivel, es necesario crear varios fondos. Estos fondos pueden ser:
-
de la biblioteca de Scratch;
-
importados desde su ordenador;
-
dibujados con la paleta gráfica.
Fondo Presentación

El fondo Presentación se muestra en primer lugar cuando el programa comienza a ejecutarse.
al hacer clic en la bandera verde
cambiar fondo a Presentación
Sobre este fondo, se pueden anotar directamente las reglas del juego o las teclas utilizadas para jugar (herramienta Texto). Esta información también puede tomar la forma de un objeto (ver capítulo Juego del loro). Se puede utilizar un objeto de presentación...
Técnica para desplazar el fondo
En un juego o una animación, se utilizan dos técnicas para simular el movimiento:
-
O bien los personajes se desplazan y activan el cambio de fondo (véase Técnicas para la animación, sección Desplazar un fondo).
-
O bien el fondo se desplaza mientras el personaje permanece en su lugar. Esta es la técnica de scrolling («desplazamiento»).
El scrolling consiste en hacer que el fondo se desplace para dar sensación de movimiento. Se pueden utilizar varias técnicas para crear desplazamientos con Scratch. Numerosos proyectos y tutoriales presentan diversas técnicas en la plataforma Scratch.
El scrolling requiere el uso de bloques Operadores, ya que, para poder desplazarse, es necesario recalcular las dimensiones de las escenas cada vez que se mueve el objeto.
1. El scrolling horizontal y el scrolling vertical
En un proyecto, el desplazamiento por el fondo puede hacerse en horizontal, en vertical o en ambos sentidos. La técnica sigue siendo la misma.
Imagine que su escenario y sus personajes se mueven por un mapa enorme. EL escenario que aparece en la pantalla es solo una parte visible de este mapa. Este primer escenario en el mapa tiene la posición 0. El segundo escenario tiene la posición 1, el tercer escenario tiene la posición 2, y así sucesivamente.
El escenario de Scratch mide 480 x 360 píxeles. Para un mapa compuesto por tres escenarios, colocados horizontalmente uno al lado del otro, la coordenada x varía entre 0 y 1440, es decir, 480 x 3.
La coordenada x del primer escenario (escenario 0) estará comprendida entre 0 y 479.
La coordenada x del segundo escenario (escenario 1) estará entre 480 y 959.
La coordenada x del tercer escenario (escenario 2) estará entre 960 y 1440.

Para un mapa compuesto por tres escenarios colocados verticalmente, uno encima de otro, la coordenada y varía entre 0 y 1080, es decir, 360 x 3.
La coordenada y del primer escenario (escenario 0) estará comprendida entre 0 y 359.
La coordenada y del segundo escenario (escenario 1) estará comprendida entre 360 y 719.
La coordenada y del tercer escenario (escenario 2) estará entre 720 y 1080.

Para conseguir un efecto de desplazamiento, es necesario modificar las coordenadas del objeto del escenario, que se muestra en la pantalla a medida que el jugador mueve su personaje, aunque...
Conclusión
Este capítulo le ha presentado una serie de técnicas que pueden utilizarse para crear videojuegos. Estas técnicas pueden mezclarse con las descritas anteriormente para crear animaciones.
Además de los capítulos dedicados a tipos específicos de juego, los demás capítulos de este libro dedicados a las ampliaciones ofrecen numerosos ejemplos de cómo ponerlas en práctica. También se desarrollan otras técnicas, como la gestión de un cronómetro o la inserción de efectos sonoros y bucles musicales para ambientar sus proyectos.