Knightmare Escape | Makecode Arcade
- Marcos
- 24 feb
- 5 Min. de lectura

Hace mucho tiempo, en un reino olvidado, existía un caballero conocido por su valentía y destreza. Un día, mientras exploraba las profundidades de un antiguo castillo, el caballero tropezó con una entrada secreta que lo llevó a una misteriosa habitación. Había esferas voladoras, baldosas mágicas, cuatro puertas y un pequeño jardín.
- ¿No te enseñaron a no entrar en los lugares que no te pertenecen? No tienes nada que hacer en este castillo. - Soltó una voz.
Un murciélago lo miraba fijamente desde una esquina. Parecía no haber nadie más.
- ¿Quién eres? - Preguntó el caballero.
- ¿No es eso lo que yo debería preguntarme? - Exclamó el animal.
- Mi nombre es Karthus y soy un caballero andante. Deambulo en búsqueda de oro y objetos valiosos. Me dirigía hacia el norte cuando encontré este castillo. Ahora dime, ¿quién eres tú?
- Osea que tú vas por la vida saqueando sin más... ¡Interesante eh! Mi nombre no te importa. Lo importante es ver cómo vas a salir de aquí. No pienses que te la dejaré fácil.
De repente, la entrada secreta había desaparecido. Sólo quedaban las cuatro puertas, contando algunas de éstas con un tapete debajo. Eran tres y cada uno era de diferente color. Violeta, verde y turquesa... La entrada restante, sólo estaba rodeada por piedras.
- Te daré 20 segundos para que puedas escapar y podrás elegir sólo una de las cuatro puertas, siendo que tres de ellas no llevan a un buen final... Pasado el umbral, ya no podrás arrepentirte. Agradece ese 25% de probabilidad que tienes. Más no puedo hacer por un ladrón. - Manifestó la criatura.
El caballero, antes de preocuparse, decidió probar una cosa. Su escudo contaba con dos poderes importantes: a) Un golpe expansivo - disponible cada 10 segundos tras su uso - utilizado para espantar enemigos y b) Una magia muy poderosa capaz de revelar cualquier tipo de hechizo oculto en el ambiente. A través de esta última fue que consiguió descubrir que realmente no había una puerta fija de salida sino que la salida se iba alternando aleatoriamente entre las puertas cada medio segundo. Por unos instantes, la salida podría ser la puerta de tapete verde; luego la de tapete violeta, después turquesa, etc. Todo era aleatorio. Sólo había que entrar por la puerta correcta en el momento exacto.
- ¿Sabés qué? Creo que 25% es mucho. - Soltó fríamente el murciélago - Intentaré cazarte para sumar emoción al desafío. Si no logro destruirte antes de los 20 segundos, no dejaré puerta de salida alguna y procederé a darte mi “regalo” final. ¿Estás listo?
"Ok. Debo correr y esperar el momento exacto para entrar por la que, en ese momento, sea la puerta de salida. Si la cosa se complica, puedo espantar temporalmente a ese bicho de un golpe. Sólo tengo 20 segundos, por lo que debo estar atento." - Pensó el aventurero - Sin embargo, también hay algo raro en esas esferas y baldosas. Creo que también manejan algun tipo de magia de aleatorie...
- ¡A correr! - Vociferó el lunático anfitrión.
Controles:
Flechitas de dirección: Movimientos del personaje.
Espacio (botón "A"): Espantar monstruo (se recarga cada 10 segundos).
Link ACÁ
(Botones de "Show Code" y "Edit Code" disponibles).
Knightmare Escape (juego de palabras que vendría a significar algo así como “escape de la pesadilla del caballero”) es un videojuego en donde la aleatoriedad posee un papel fundamental. La puerta de escape, la posición inicial de los personajes, el lugar de reaparición del enemigo tras un golpe “espantador” de escudo... Todos elementos sujetos al azar.
Por otra parte, también aparecen elementos interesantes como las animaciones y el efecto “cooldown” (tiempo - generalmente medido en segundos - que debe esperarse antes de poder realizar una acción nuevamente). Dos ingredientes que pueden hacer súper atractivos nuestros videojuegos. Fundamentalmente, las animaciones. No hay comparación, por ejemplo, entre deslizar a un personaje “petrificado” y mover un personaje "vivo" que imita los movimientos humanos al caminar.
Ahora bien, es importante saber que casi siempre existe una relación proporcional entre el “amor” que le ponemos a un proyecto y la extensión/tamaño del código final. Más “amor”, más código. Menos “amor”, menos código. Veamos, así, cómo quedó el “detrás de escena” de Knightmare Escape (que, como siempre digo, podría pulirse aún más):

Arrancamos con los parámetros de inicio. Configuro los personajes, su relación, sus tamaños, su velocidad, su posición inicial, el mapa, los controles, la cámara, la cuenta regresiva, etc. Todo muy normal, salvo por una cosita a la que no le estoy dando su uso original: el bloque de puntaje (bloque que viene por defecto en la categoría "Información" de Makecode Arcade). En este caso, estoy usando el contenedor del puntaje para almacenar y mostrar por pantalla (esquina superior derecha) el tiempo de "cooldown" del poder del escudo del jugador. Y sí... ¡Lo sé! Sería más coherente crear una variable llamada 'cooldown' y mostrarla por pantalla con la misma estética y ubicación que tiene el bloque de puntaje que viene por defecto. Si alguien sabe cómo, me avisa por favor.

Pasamos al área "gerenciadora de movimientos". Podrán ver que hay animaciones para las cuatro direcciones posibles en las que el jugador puede moverse (arriba, abajo, izquierda y derecha), un botón "A" (espacio) que activa el poder "espantador" del escudo (el cual sacude la cámara, teletransporta al enemigo a una esfera aleatoria y coloca el tiempo de espera nuevamente en 10 segundos), un descontador de "cooldown" (que descuenta segundos hasta llegar a 0) y algunas variables que tienen que ver con saber qué flechas de movimiento están activadas en ese momento (en uso = 1, liberada = 0). Esto último sólo se realizó para poder saber cuándo estaban las cuatro flechitas liberadas y así poder cambiar la imagen del jugador a una imagen estática sin movimiento (no me muevo -> no hay animación).

Finalmente, llegamos al área de "gestión de puertas y otros eventos de fin de juego". Tenemos un bloque "para siempre" que se encarga de elegir una nueva puerta de salida cada medio segundo (dejando también medio segundo para que el personaje nos informe cuál es dicha puerta), bloques de control para saber si la puerta por la que se entró coincide con la puerta de escape actual (si coincide, ganamos. Caso contrario, perdemos), un bloque que supervisa la cuenta regresiva y otro bloque que vigila que el enemigo no haya alcanzado al jugador. Todos, quitando la selección de puerta, eventos de fin de juego.
Desde ya, profes, espero que les haya gustado “Knightmare Escape”. Fue, tal vez, un proyecto más largo y complejo de lo habitual, pero creo que valía la pena mostrarlo.
Abrazo gigante y éxitos a todos.
~ Marcos.