MetsuOS

Construyendo la plena inclusión a través del videojuego

Tutorial de AGD 2018 Capítulo 16 - Nuestro primer enemigo. ⚫①

Nuestro primer enemigo

Mucho hemos caminado desde que creamos nuestra primera pantalla, nuestra primera animación o pusimos a nuestro prota en movimiento. Hoy vamos a comenzar a dar vida a nuestro primer enemigo.

Lo primero que hemos de tener en cuenta es que un enemigo, en realidad, no es mas que un sprite, con tipo distinto al cero, con sus animaciones como cualquier otro y que seguirá las normas establecidas en el bloque de evento del tipo que le corresponda.

No hay misterio, en esencia crearemos un sprite, lo animaremos, decidiremos el tipo y crearemos el código correspondiente en el evento. Si no has creado ya el gráfico y animaciones de tu enemigo, hazte uno (o copia el mio, que puedes observar en la imagen que preside este artículo) y vuelve, ¡te esperamos antes de continuar!.

Situar el Enemigo en Pantalla

Al igual que nuestro protagonista, hemos de situar la posición inicial de nuestro enemigo en la pantalla, a partir de esa posición el enemigo actuará siguiendo el código que tenga asignado según el tipo (lo que quiere decir que podemos hacer que un mismo sprite animado actúa de varias formas segun el tipo que le asignemos en la pantalla de Sprite Positions, a la que se acceder mediante a tecla N. Aparecemos en una pantalla como la siguiente:

Pantalla de configuración de posiciones iniciales de spritesde AGD

Antes de nada, las referencia de comandos de teclado:

* N = Pantalla siguiente
* P = Pantalla Anterior
* Q = Seleccionar sprite siguiente
* I = Cambiar la imagen del sprite
* T = Cambiar el tipo del sprite
* D = Eliminar el sprite seleccionado de la pantalla.
* X = Añadir nuevo sprite a la pantalla.

Para crear nuestro primer enemigo, añadiremos un nuevo sprite con X, usando los cursores para situarlo en la posición deseada, con I elegiremos la imagen del sprite que hemos diseñado y con T seleccionaremos tipo 1 (hay 9 incluyendo el del jugador, pero usaremos este) que es el que vamos a usar en este ejemplo. ¡Listo! ya tenemos el sprite de nuestro enemigo, que podremos ver si ejecutamos el juego ... pero claro, no se mueve, veamos como darle vida.

Códgo en el Evento "Sprite Type 1"

Vamos al menú principal, entramos en Eventos y seleccionamos el Evento "Sprite Type 1", saldrá nuestra vieja conocida lista de plantillas, seleccionaremos "Patrolling Enemy (U/D)" y pulsaremos space, esto cargará en el evento el código de un enemigo que patrulla su área rebotando arriba y abajo. Concretamente el siguiente:

IF PARAMA = 0
  IF CANGOUP
    SPRITEUP
  ENDIF
ELSE
  LET PARAMA = 1
ELSE
  IF CANGODOWN
    SPRITEDOWN
  ELSE
    LET PARAMA = 0
  ENDIF
ENDIF
ANIMATE
IF COLLISION 0
  KILL
ENDIF

Este código es bastante sencillo y podemos observar que muchos de los conceptos que utiliza ya los conocemos, pues los estudiamos en el código para el jugador.

Una diferencia primordial es que el código de este enemigo no usa para nada las pulsaciones de tecla realizadas por el jugador, en cambio usa PARAMA (variable disponible para cada sprite) para indicar si el sprite sube (PARAMA = 0) o baja (PARAMA = 1).

En esencia, evalúa la dirección actual del movimiento, y según este comprueba si puede CANGOUP / CANGODOWN, si puede, movemos el sprite si no se puede, se asigna PARAMA para cambiar de dirección. Vemos, por tanto, que los tipos de bloque afectan a todos los sprites, no solo al protagonista.

Tras la comprobación de movimiento, se ejecuta un ANIMATE para que la animación avance un frame.

Por último , se comprueba COLLISSION 0 que significa "SI he colisionado con un sprite de tipo 0" (el jugador) entonces KILL (es decir quita una vida al jugador).

Ahora si, si ejecutamos el juego veremos que nuestro enemigo se mueve y si nos toca, moriremos (no nosotros, el muñequito en pantalla xD).

Y poco más, esto es lo básico de un enemigo, en el próximo capítulo trataré la gestión de KILL y la puntuación básica, como veis poco a poco esto comienza a tomar forma, eso si, no dudéis en trastear con las opciones, las plantillas de enemigo y demás opciones de AGD, este tutorial es una guía que apoya vuestro trabajo de investigación, ensayo y error, pero que en ningún caso puede sustituir este esfuerzo por vuestra parte.

Referencias Bibliográficas

Y ahora que?

One More Thing

Un escenario de retrocomputación del siglo 24

¡Desbloquea el poder de MetsuOS y descubre que la privacidad y la seguridad son la clave para desencadenar tu verdadero potencial en línea!

Contenido registrado en Safe Creative

Logo Safe Creative
¡Usa el código de promocional 7ZYM4Z y ahorrate unos eurillos en tu suscripcion de Safe Creative!

MetsuOS Needs You!

Apoyanos en este proyecto difundiendolo en tus redes, o mejor, haznos una donación a la cuenta paypal para poder dedicar más tiempo y recursos a el. No olvides comentarnos que parete te interesa más junto con tu donación.

En este momento, además de mantener los servicios, estoy centrado en crear la siguiente iteración del software que me permite hacer todo esto y creando una biblioteca personal física para poder contrastar contenido.

Sobre el sistema de validez de un contenido en MetsuOS

Empezando a incorporar los niveles de validación de un contenido (también llamada sabiduría o niveles de conocimiento) ⚫🔴 🟡 🟢 🔵⚪ ¿Qué són?

Sobre la categorización de los tipos de conocimiento

La Metsukeología (de Metsuke vision global y logos conocimiento) es la ciencia que estudia el conocimiento como un conjunto potencial de conocimiento del que podemos obtener, procesar o percibir partes concretas dentro de un marco contextual específico, y cuyo contexto general real está muy por encima de lo que somos capaces, como especie, de percibir, procesar e integrar de forma completa (definición en progreso).

La Metsucología (de Metsu aniquilación - en este contexto en forma de colapso - , logos conocimiento) es la ciencia que estudia como extraemos verdades percibidas - colapsadas - como conocimiento desde nuestra perspectiva real (tanto epistemológico como gnoseológico) al tomar una parte específica del conocimiento metsukeológico potencial enmarcado en un contexto concreto, obligando a colapsar el conocimiento potencial en conocimiento específico (definición en progreso).

Mas sobre el contexto

DISCLAIMER: Mi consideración de anticientífico respecto al consenso científico es una hipotesis de trabajo propia, que supone que toda asignación de validez, incluso aquella derivada de la conclusión por acumulación de evidencia NO debe ser supeditada a debate, ni acuerdo, debe ser algo probabilistico sin intervención del ego humano. Podría estar equivocado y, en este punto, es donde se aplicaría entonces ese mismo consenso que ahora considero no valido (incluso dañino)

Existen indicadores para algunas cuestiones adicoinales como los siguientes:

Cuando hablamos de un contenido que incluye un texto que hace referencia a otro.

También aplicaremos el Sistema de fiabilidad de fuentes y credibilidad de contenidos de la OTAN 🔴②, este sistema incluye una valoración de la fiabilidad de la fuente de A a F (siendo A la de mayor fiabilidad) y una varloración de credibilidad del contenido de 1 a 6 (siendo 1 la mayor credibilidad).

En MetsuOS la agregaremos al final uniendo amos valores como si fuera una coordenada. Por ejemplo: ⚫①-D4 o 🟡③-B2. Esto ayudarña a contextualizar la información sobre la solidez del conocimiento al que se hace referencia en cada momento.

Hay que tener en cuenta que, cuando hay elementos subjetivos o parcialmente subjetivos, el punto de referencia seré yo mismo. Quizá más adelante pueda objetivizar esto más (seria lo deseable), pero en tanto no tenga herramientas que me lo permitan, debo ceñirme al principio de honestidar intelectual, y esperar que mis sesgos dañen lo menos posible la información (en parte este es el nudo gordiano que pretendo resolver, y por ello es dificil resolverlo a priori).

Así de forma resumida, podríamos decir que esta definición es nivel 🔴② (Rojo2 xD) ¿Crees que me dejo algo? Si es así por favor ayudame a mejorarlo contactándome a través de X (Twitter) en mi cuenta, @metsuke 🌐

Consulta la versión completa de la descripcion en ⚫🔴🟡🟢🔵⚪ (🔴②) Un poco más de detalle