Seguimos creando el estado de ataque
Clase 5 de 14 • Curso de Game Maker Studio 2: Interacción y Ataque de los Personajes
Resumen
¿Cómo crear un flujo de estados en Game Maker Studio?
Al desarrollar videojuegos, es fundamental entender el flujo de estados del personaje para garantizar un comportamiento coherente. Utilizar diagramas de flujo simplifica esta tarea, permitiendo visualizar fácilmente cómo transitan entre un estado y otro. En esta clase, hemos utilizado una herramienta básica pero útil, Paint, para crear un diagrama de flujo para nuestro personaje en Game Maker Studio, dividendo el proceso en los estados de idle, mover y ataque.
¿Qué representa cada estado en el videojuego?
- Idle: Es el estado inicial del personaje, sin movimiento ni acción.
- Mover: Ocurre cuando el jugador presiona una tecla direccional (arriba, abajo, izquierda, derecha).
- Ataque: Se activa al presionar el botón de ataque, siempre y cuando el personaje esté en estado idle.
¿Qué reglas seguir para los cambios de estado?
- Iniciar el juego en el estado idle.
- Pasar al estado mover al presionar cualquier tecla de dirección y regresar a idle al soltarla.
- Ir del estado idle a ataque al pulsar el botón de ataque.
- Regresar automáticamente a idle desde ataque al finalizar la animación de ataque.
¿Cómo implementar un flujo de estados en código?
Abrimos el objeto obj_player
en nuestro proyecto de Game Maker Studio y comenzamos a realizar los cambios necesarios:
Creación de estados y condiciones
Usamos if
para representar los cambios de estado, enlazándolos con el diagrama planificado. Comenzamos comentando el código dentro de step_event
, manteniéndolo para futuras referencias, y luego adaptamos a los nuevos requerimientos:
// Estado Idle hacia Move
if (state == script_idle && (keyboard_check(vk_left) || keyboard_check(vk_right) || keyboard_check(vk_up) || keyboard_check(vk_down))) {
state = script_move;
}
// Regresar de Move a Idle
else if (state == script_move && !(keyboard_check(vk_left) || keyboard_check(vk_right) || keyboard_check(vk_up) || keyboard_check(vk_down))) {
state = script_idle;
}
// Estado Idle hacia Ataque
else if (state == script_idle && keyboard_check(vk_attack)) {
state = script_attack;
}
Evento de finalización de animación
Para regresar automáticamente al estado idle desde ataque, utilizamos el evento animation_end
.
if (state == script_attack) {
state = script_idle;
}
Ajuste del image_index
Para asegurar que la animación de ataque se inicia siempre desde el principio, restablecemos el image_index
al cambiar al estado de ataque.
if (state == script_attack) {
image_index = 0;
}
¿Cómo podemos verificar el correcto funcionamiento?
Probamos el juego pulsando F5. Observamos que:
- El personaje pasa de idle a mover al usar las teclas direccionales.
- El estado regresa a idle al soltarlas.
- La acción de ataque se activa y regresa automáticamente a idle tras completar la animación.
A través de estos pasos prácticos, hemos consolidado nuestro entendimiento sobre los estados en Game Maker Studio. Si tienes dudas, no dudes en expresar tus inquietudes.
¡Sigue adelante! En la siguiente clase, aplicaremos estos conocimientos para crear nuestro primer enemigo, permitiendo una interacción más dinámica. Invierte tiempo en explorar y experimentar; el diseño de videojuegos es una habilidad enriquecedora que te ofrece posibilidades infinitas.