Hola Taki-A
1 - Mencionaste que al crear la bala "arriba" del enemigo hace que la bala sólo lo persiga en el eje X y no alcanza a hacer colisión. Eso pasa porque la Bala se dirige hacia las coordenadas de origen del sprite, si tu sprite enemigo tiene el origen en la coordenada (x=0, y=0) obiamente la bala irá hacia ese punto.
Para ir al centro, lo que puedes hacer es cambiar la última línea que te calcula la nueva dirección de la Bala:
Por esta nueva línea:
No es la mejor solución, porque va a variar según el tamaño del sprite, pero si no quieres cambiar la coordenada de origen, puede ser una buena solución parche a ese problema.
2 - Lo otro que comentaste, es que sólo detecta un enemigo y no los demás.
Eso es porque la función "with (obj_enemigo_general)" no los está tomando en cuenta. Comprobaste que todos los objetos enemigos tengan asignado como parent al obj_enemigo_general???
Por alguna razón esa función no los está tomando en cuenta.
Saludos
1 - Mencionaste que al crear la bala "arriba" del enemigo hace que la bala sólo lo persiga en el eje X y no alcanza a hacer colisión. Eso pasa porque la Bala se dirige hacia las coordenadas de origen del sprite, si tu sprite enemigo tiene el origen en la coordenada (x=0, y=0) obiamente la bala irá hacia ese punto.
Para ir al centro, lo que puedes hacer es cambiar la última línea que te calcula la nueva dirección de la Bala:
Código [Seleccionar]
direction = point_direction(x,y,next_target.x,next_target.y)
Por esta nueva línea:
Código [Seleccionar]
direction = point_direction(x,y,next_target.x+next_target.sprite_width/2,next_target.y+next_target.sprite_height/2)
No es la mejor solución, porque va a variar según el tamaño del sprite, pero si no quieres cambiar la coordenada de origen, puede ser una buena solución parche a ese problema.
2 - Lo otro que comentaste, es que sólo detecta un enemigo y no los demás.
Eso es porque la función "with (obj_enemigo_general)" no los está tomando en cuenta. Comprobaste que todos los objetos enemigos tengan asignado como parent al obj_enemigo_general???
Por alguna razón esa función no los está tomando en cuenta.
Saludos