Tutorial de AGD 16: 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.

¡Compártelo!

Ayudame a difundir este contenido a todo aquel que pueda sacarle partido, difundelo en redes, cuéntaselo a tus amigos, coméntalo en la cola del supermercado, además de aportar, ¡seguro que conoces a gente interesante y acabas uniéndose al bando rebelde!

Sígueme en Redes

Acelera mi progreso de la materia que te interesa.

El calendario y ritmo de publicaciones actualmente responde a mis necesidades de estudio y desarrollo de proyectos personales, si quieres invertir en que acelere alguna materia concreta, te ofrezco una posibilidad:

Puedes donar en mi paypal (paypal at metsuke.com), indicando la materia, por cada 25 euros donados, priorizaré un capítulo de la materia que me indiques que ya tenga escrito para que salga el proximo dia viable y disponible de lunes a viernes (en orden de llegada y a un post diario).

En caso de que el capítulo aún no exista, centraré mi atención en escribirlos y publicarlos con prioridad, pero no puedo prometer inmediatez.

De nuevo priorizaré las donaciones por orden de llegada pero cuando coincidan varias, iré rotando cada dia una para evitar la monopolización de mi foco de tareas.

Me reservo el fin de semana para priorizar lo que considere pertinente en el caso de que haya cola de entrega. Si te gusta el proyecto, ¡es un buen modo de apoyarme!

¿Te interesan mis servicios como consultor?

En ese caso, pudedes contactarme en mi correo r.carrillo@metsuke.com y cuéntame que necesitas, si lo que leo me gusta, te pongo en contacto con el comercial de mi empresa de consultoría.

Si quieres que sea yo expresamente quien te atienda, puedes indicármelo y llegamos a un acuerdo.

Advierto que esta última posibilidad te saldrá bastante más cara que hablar con mi equipo, pero si es lo que deseas, a tu disposición.

Un Abrazo.

Sobre las traducciones

Por el momento me he visto obligado a detener la traducción del contenido, apenas doy abasto a escribirlo (que es mi objetivo, ya que son mis apuntes de estudio), por lo que no parece tener sentido mantener activas unas traducciones que no doy abasto a crear.

En caso de que más adelante el flujo de caja me lo permita, es mi intención contratar servicios de traducción y editores que realicen la tarea, pero por ahora lo dejo desactivado.

Quizá te interese leer más sobre AGD

Una Respuesta a “Tutorial de AGD 16: Nuestro primer enemigo.”

Dejar una Respuesta

XHTML: Usted puede usar las siguientes etiquetas: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>