Resumen

¿Cómo crear un sprite de bala en Game Maker?

Crear un sprite de bala en Game Maker es un paso esencial para dar vida a nuestro juego. Siguiendo estos pasos, podrás diseñar un proyectil visualmente impactante:

  1. Crea un nuevo sprite: Dentro de la carpeta de Sprites, es recomendable crear un sprite específico para las balas del enemigo, nombrándolo como SPR Enemy Bullets.

  2. Diseña el sprite: Selecciona un simple círculo blanco para la primera imagen del frame y, para la segunda, utiliza la herramienta de cubeta para pintar el círculo de rojo. Esto le da un efecto de parpadeo, que puedes optimizar ajustando la velocidad a 10 para una mejor visualización.

  3. Ajusta el sprite: Utiliza la función Image Auto Trim All Frames de Game Maker para recortar el exceso de espacio en el sprite, lo que ayuda a mantener el proyecto organizado.

  4. Centraliza el objeto: Asegúrate de colocar el sprite en el centro del canvas para una correcta animación en el juego.

¿Cómo incorporar físicas y colisiones a las balas?

Implementar físicas y colisiones en las balas asegura que interactúen adecuadamente con otros objetos en el juego:

  1. Crea el objeto de bala: A partir del sprite, crea el objeto EnemyBullets y asígnale el sprite correspondiente.

  2. Define propiedades físicas: Añade propiedades como la velocidad (SPD), que puedes definir inicialmente en 3, y la dirección que controlará la trayectoria de la bala.

  3. Implementa movimiento: En el evento Step del objeto bala, usa funciones como LengthDirX para mover la bala en la dirección y velocidad definidas. Aquí tienes una forma resumida de definir el movimiento:

    x += lengthdir_x(spd, direction);
    y += lengthdir_y(spd, direction);
    
  4. Gestiona la colisión: Cuando la bala colisiona con el jugador, decrementa los puntos de vida con HP -= 10 y destruye la bala usando instance destroy. Es fundamental hacerlo fuera de las llaves para no eliminar al jugador erróneamente.

  5. Elimina balas fuera de la pantalla: Usa el evento OutsideRoom para destruir automáticamente la bala si esta sale de la vista, evitando que consuma memoria innecesariamente.

¿Cómo hacer que el enemigo dispare automáticamente?

Hacer que el enemigo dispare automáticamente hace el juego más dinámico y desafiante. Aquí te mostramos cómo lograrlo:

  1. Añade lógica de disparo en Animation End: Justo al terminar la animación de ataque del enemigo, crea la bala con la función instance create layer en la capa correspondiente, como se muestra aquí:

    bullet = instance_create_layer(x, y, "Instances", obj_enemy_bullet);
    
  2. Ajusta la salida del disparo: Para que la bala no salga del centro del enemigo, sino de un lugar más natural como su dedo, ajusta la posición usando lengthdir.

    x += lengthdir_x(10, dir_x);
    
  3. Define la dirección del disparo: Transfiere la dirección del enemigo al disparo para que apunte correctamente al jugador con:

    bullet.dir = point_direction(x, y, obj_player.x, obj_player.y);
    
  4. Prueba y ajusta: Ensaya el juego para verificar el movimiento y dirección de las balas, ajustando la distancia y dirección según sea necesario.

Siguiendo estos pasos, enriquecerás la experiencia de juego al permitir que el enemigo dispare automáticamente, añadiendo un nivel adicional de desafío para los jugadores.