24/10/2015
El universo de los videojuegos está lleno de jefes finales memorables, pero pocos han alcanzado el estatus de leyenda como la batalla contra Sans en la ruta genocida de Undertale. Su dificultad endiablada, su banda sonora icónica y sus mecánicas únicas han inspirado a incontables fans a crear sus propias versiones. ¿Alguna vez has soñado con diseñar un enfrentamiento así? Hoy, ese sueño está a tu alcance. Te guiaremos a través del fascinante proceso de recrear la esencia de esta batalla utilizando Scratch, una poderosa y accesible herramienta de programación visual. No necesitas ser un experto en código; solo necesitas tu creatividad y ganas de enfrentarte a un mal rato programando. ¡Prepárate para dar vida a tu propio desafío de huesos y Gaster Blasters!
¿Qué es Scratch y por qué es ideal para tu proyecto?
Antes de sumergirnos en el código, hablemos de nuestra herramienta principal. Scratch es una plataforma de programación desarrollada por el MIT, diseñada para enseñar los fundamentos de la lógica de programación de una manera intuitiva y visual. En lugar de escribir líneas de código complejas, arrastras y unes bloques de colores que representan diferentes comandos, como si fueran piezas de Lego. Esto lo convierte en el punto de partida perfecto para cualquiera que quiera crear juegos, animaciones o historias interactivas sin la intimidante curva de aprendizaje de los lenguajes de programación tradicionales.

Para un proyecto como una batalla de Undertale, Scratch es sorprendentemente robusto. Permite gestionar sprites (los personajes y objetos), controlar movimientos, crear variables (como la vida o la gravedad), y programar lógicas de colisión, todo lo necesario para emular las mecánicas del juego original. Un dato importante: Scratch funciona en tu navegador, así que asegúrate de tener JavaScript habilitado en sus preferencias. Además, un consejo de la comunidad que vale oro: muchos usuarios reportan que los proyectos complejos y exigentes, como una batalla de Sans, tienden a funcionar con mayor fluidez en el navegador Firefox. Si notas lag o ralentizaciones, ¡dale una oportunidad!
Planificando la Batalla: Los Componentes Esenciales
Toda gran batalla necesita un plan. Antes de colocar nuestro primer bloque, desglosemos los elementos clave que definen el enfrentamiento contra Sans y que recrearemos:
- El Alma del Jugador (El Corazón): Es tu avatar en la batalla. Su principal característica es que cambia de color y, con ello, de mecánica de movimiento.
- El Cuadro de Batalla: El espacio delimitado donde el Alma debe esquivar los ataques. Programaremos sus límites para que el jugador no pueda escapar.
- Los Modos del Alma: Nos centraremos en los dos modos más icónicos: el Alma Roja, que permite un movimiento libre en todas las direcciones, y el Alma Azul, que introduce la gravedad y convierte el juego en un mini-plataformas.
- Las Variables de Juego: Necesitaremos contadores para elementos cruciales como la Vida (HP), la Gravedad (GRAVITY) y la velocidad vertical (SPEED Y) para el modo de salto.
¡Manos al Código! Programando el Movimiento del Alma
Ahora sí, es hora de abrir el editor de Scratch y empezar a construir. Seguiremos una estructura lógica para que puedas entender cada paso del proceso.
Paso 1: Configuración Inicial del Sprite y las Variables
Primero, crea un nuevo sprite que será tu Alma. Puedes dibujarlo como un corazón o subir una imagen. Una vez creado, vamos a la pestaña de "Código":
- Posición Inicial: Utiliza el bloque
cuando se presiona la bandera verde. Debajo, añade los bloquesir a x: (0) y: (0)para centrar el Alma al inicio yir a la capa de atráspara que siempre esté detrás de los ataques que programaremos más adelante. - Creación de Variables: Ve a la sección "Variables" y crea tres nuevas variables "para todos los sprites":
HP: Representará la vida del jugador. Puedes inicializarla en el valor que desees (por ejemplo, 92) usando el bloquefijar [HP] a (92).GRAVITY: Esta variable actuará como un interruptor. Si su valor es 0, el Alma será roja. Si es 1, será azul. La inicializaremos en 0 confijar [GRAVITY] a (0).SPEED Y: Esta variable controlará la velocidad vertical del salto en el modo Alma Azul. No es necesario inicializarla al principio.
Paso 2: El Bucle Principal y el Cambio de Modo
El corazón del movimiento del Alma residirá en un bucle por siempre que comprobará constantemente qué modo está activo.
Arrastra un bloque por siempre. Dentro, coloca un bloque si / si no. La condición será [GRAVITY] = (0). De esta forma, si la gravedad es 0, ejecutaremos el código del Alma Roja; de lo contrario (si no), ejecutaremos el del Alma Azul. Para mantener el código limpio, crearemos nuestros propios bloques (en "Mis Bloques") llamados "MovimientoRojo" y "MovimientoAzul" y los colocaremos dentro del si y del si no, respectivamente.

Paso 3: Programando el Alma Roja (Movimiento Libre)
Ahora definiremos qué hace nuestro bloque "MovimientoRojo". El objetivo es moverse libremente dentro de los límites del cuadro de batalla.
- Cambio de Disfraz: Lo primero dentro de la definición de "MovimientoRojo" es un bloque para
cambiar disfraz a [rojo]. - Movimiento Horizontal (Eje X): Usa un bloque
si [tecla (flecha derecha) presionada?] entonces. Dentro,cambiar x por (5). Para evitar que se salga del cuadro, anida esta condición dentro de otrosicuya condición sea(posición en x) < (90). El valor '90' dependerá del tamaño de tu cuadro de batalla; ajústalo mirando la posición del borde derecho. Duplica todo este bloque, cámbialo para laflecha izquierda,cambiar x por (-5)y la condición(posición en x) > (-90). - Movimiento Vertical (Eje Y): Repite el proceso anterior para el movimiento vertical con las flechas arriba y abajo, usando
cambiar y por (5)ycambiar y por (-5)y ajustando las condiciones con los límites superior e inferior de tu cuadro (por ejemplo,(posición en y) < (65)y(posición en y) > (-115)).
Paso 4: Programando el Alma Azul (Gravedad y Salto)
Este modo es más complejo, ya que simula físicas de plataformas. Definiremos el bloque "MovimientoAzul".
- Configuración Inicial: Lo primero es
cambiar disfraz a [azul]. Luego, llamaremos al bloque de movimiento horizontal que ya creamos, ya que el movimiento izquierda-derecha es igual. - Definiendo el Salto: Crea un nuevo bloque personalizado llamado "Salto". Dentro, usa un
si [tecla (flecha arriba) presionada?] entonces. La acción seráfijar [SPEED Y] a (8). Este valor determina la altura del salto; ¡siéntete libre de experimentar! - Definiendo la Gravedad: Crea otro bloque personalizado llamado "Gravedad". Este es el núcleo de la física.
- Primero,
cambiar y por (SPEED Y). Esto mueve el Alma verticalmente. - Luego,
cambiar [SPEED Y] por (-0.5)(o un valor pequeño negativo). Esto hace que la velocidad del salto disminuya y eventualmente se vuelva negativa, haciendo que el Alma caiga. - Finalmente, necesitamos la colisión con el suelo. Usa un
si (posición en y) < (-115) entonces. Dentro,fijar y a (-115)para que no atraviese el suelo yfijar [SPEED Y] a (0)para detener la caída.
- Primero,
- Integración: Dentro de la definición de "MovimientoAzul", después de cambiar el disfraz y llamar al movimiento horizontal, asegúrate de llamar a tus nuevos bloques "Salto" y "Gravedad" en ese orden.
Tabla Comparativa de Movimientos del Alma
Para que quede más claro, aquí tienes una comparación directa entre los dos modos que acabamos de programar:
| Característica | Alma Roja | Alma Azul |
|---|---|---|
| Gravedad | No (Variable GRAVITY = 0) | Sí (Variable GRAVITY = 1) |
| Movimiento | Libre en 4 direcciones (arriba, abajo, izq., der.) | Horizontal en el suelo, vertical solo con saltos |
| Tecla 'Arriba' | Mover hacia arriba | Saltar |
| Variables Clave | Posición X, Posición Y | Posición X, Posición Y, SPEED Y |
| Estilo de Juego | Esquivar (bullet hell) | Plataformeo y esquivar |
Preguntas Frecuentes (FAQ)
P: Mi juego funciona muy lento, ¿qué puedo hacer?
R: El lag es común en proyectos grandes de Scratch. Primero, intenta ejecutar tu proyecto en el navegador Firefox, que suele gestionar mejor el rendimiento. También es muy recomendable descargar el proyecto y abrirlo con el editor offline de Scratch. Esto utiliza los recursos de tu computadora directamente, evitando cuellos de botella de internet. Jugar en la ventana pequeña del editor en lugar de en pantalla completa también reduce la carga.

P: ¿Es muy difícil añadir los ataques de Sans?
R: Una vez que tienes el movimiento del jugador dominado, añadir ataques es el siguiente paso lógico. Implica crear nuevos sprites para los huesos o los Gaster Blasters y programar sus patrones de movimiento usando clones y temporizadores. Es un desafío divertido que pone a prueba lo que has aprendido, pero totalmente factible siguiendo la misma lógica de bloques.
P: ¿Qué pasa si cambio de ordenador? ¿Perderé mi progreso?
R: ¡No! Si tienes una cuenta de Scratch y guardas tu proyecto online, podrás acceder a él desde cualquier ordenador con conexión a internet. Simplemente inicia sesión y todos tus proyectos estarán ahí. El guardado en la nube es una de las grandes ventajas de la plataforma.
P: ¿De dónde puedo sacar los gráficos y sonidos?
R: La comunidad de Undertale y de Scratch es increíblemente creativa. Puedes encontrar muchos proyectos para "remixar", que te permiten usar sus gráficos y códigos como base (¡siempre dando crédito!). Sitios web como The Spriters Resource tienen hojas de sprites de muchísimos juegos, incluido Undertale, que puedes usar para tu proyecto personal.
Si quieres conocer otros artículos parecidos a Crea tu Propia Batalla de Sans en Scratch: Guía puedes visitar la categoría Juegos.
