Tutorial de AGD 19: Ciclo de Vida


¿Ciclo de vida? si, con ello me refiero a los eventos, en que orden y cuando se ejecutan. Es importante reseñar que en AGD no hay concurrencia, es absolutamente lineal, por lo que solo se puede ejecutar una cosa al tiempo.

Los eventos son los siguientes:

Cada uno de ellos se lanza en un momento diferente:

Intro / menu

Este evento es el primero que se ejecuta al iniciar la ejecución del programa, se encarga de gestionar el menú y pantalla de presentación.

Al iniciar el juego desde el menu se ejecuta “Game initialisarion”

Game initialisarion

En este evento se realizan las configuraciones iniciales de la partida, se dispone el número de vidas, y, en general, todo lo que deba realizarse al comienzo de la partida.

En este punto se carga la primera pantalla, se invocan a los sprites, y por cada uno de ellos se ejecuta “Initialize sprite”

Initialize sprite

Este evento se ejecuta al comienzo de la primera pantalla del juego, cada vez que cambiamos de pantalla y se crea un sprite y en general en cualquier punto en que aparezca uno nuevo (como por ejemplo un disparo).

Sirve únicamente para inicializar valores de los mismos, sin más complicación. En el caso del inicio de la partida, a continuación se salta a “Main loop 1”

Main loop 1

El comienzo del ciclo de juego principal que se repite una y otra vez empezando por este evento. Aquí se debe incluir lo que se deba ejecutar antes de comprobar y mover los sprites incluyendo al protagonista.

Tras este evento, se ejecuta el control del jugador “Player control (type 0)”

Player control (type 0)

En este evento se gestiona el control del jugador, desde el movimiento a la recogida de objetos e incluso los disparos.

En este evento pueden suceder varias cosas:

  • En caso de que caigamos desde demasiado alto se ejecuta “Fell too far
  • Si por cualquier motivo el personaje principal pierde una vida, saltamos a “Kill player
  • Aunque puede ejecutarse en cualquiera de los loops por ejemplo, en mi caso con JBA compruebo aquí la condición de victoria, si se cumple, salto a “Completed game“.
  • En caso de un flujo sin novedad se continúa con “Sprite type 1 .. 8”

Sprite type 1 .. 8

En estos eventos se procesan en secuencia los diferentes tipos de sprite (enemigos, balas, etc), en caso necesario, se ejecuta un “Kill player“, en caso contrario salta a “Main loop 2”

Main loop 2

Tras el procesado de todos los sprites se ejecuta la segunda parte del loop principal, y si no sucede nada reseñable, se vuelve a “Main Loop 1“.

Fell too far

Cuando AGD detecta que el jugador ha caído desde demasiada altura, se activa este evento, en el que se puede reaccionar ante esta situación, en caso de que se considere oportuno, se puede ejecutar la pérdida de una vida, ejecutándose “Kill player”.

Kill player

En este evento se gestiona la pérdida de una vida por parte del jugador, si se han perdido todas las vidas se salta automáticamente a “Lost game“, en caso contrario se salta a “Restart screen” y se continua la partida.

Restart screen

Este evento nos permite gestionar las acciones apropiadas al reiniciar una pantalla tras la pérdida de una vida, tras este evento se vuelve a “Main loop 1

Lost game

Este evento permite gestionar lo que ocurre al perder todas las vidas, mensaje de game over, sonidos de fin de juego , etc.

Tras su ejecución se lanza “Intro / menu“.

Completed game

Si en algun punto se cumple la condicion de victoria, se lanza este evento que nos permite definir que va a ocurrir cuando el jugador logre pasarse nuestro juego, podemos hacer multitud de cosas para recompensar a ese jugador que se ha esforzado al máximo.

Cuando se completa este evento, se lanza “Intro / menu“, cerrando el ciclo.

Un ciclo bastante sencillo sin duda, pero que por su sencillez sirve de ejemplo minimalista del proceso que lleva a cabo un videojuego mietras nosotrs disfrutamos de la partida.

Aún no he decidido que voy a comentar en el próximo capítulo por lo que esta vez será sorpresa ¿quizá los objetos?¿el de textos? debo pensarlo.

¡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 a título personal?

Puedo ofrecerte una amplia gama de productos y servicios en accesibilidad a través de mis partners, aunque quizá prefieras que lo haga yo personalmente…

En ese caso, puedes 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

2 Respuestas a “Tutorial de AGD 19: Ciclo de Vida”

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>