En este caso serían lanzas y no balas ya que se trata de un juego estilo ghouls N Goblins.
Mi problema es que cuando disparo una lanza en una dirección e inmediatamente disparo otra en la dirección contraria, todas las que se encuentran en pantalla cambian su sprite de derecha a izquierda (o al revés). Cómo se hace para cambiar el sprite en todo su trayecto sin que el sprite se vea afectado por nada?
Este es el código que estoy usando para ello y que tiene ese defecto:
Otro error que tengo es a la hora de crear un efecto de polvo cuando la lanza choca con una pared, cuando viaja a la derecha el polvo sale en las coordenadas que le he asignado yo (para que sea en la punta) pero si se mueve hacia la izquierda el sprite se invierte (image.xscale = -1) la nubecita de polvo sale detrás y no en la punta porque mantiene las coordenadas de antes.

¿Hay alguna manera de hacer esto mediante código o simplemente debo añadir otro objeto para la lanza en la otro dirección cos su propio código?
Gracias
Mi problema es que cuando disparo una lanza en una dirección e inmediatamente disparo otra en la dirección contraria, todas las que se encuentran en pantalla cambian su sprite de derecha a izquierda (o al revés). Cómo se hace para cambiar el sprite en todo su trayecto sin que el sprite se vea afectado por nada?
Este es el código que estoy usando para ello y que tiene ese defecto:
Código [Seleccionar]
//Spear:
if (Key_Spear) and (anime_throw = 1)
{
spear = 1;
anime_throw = 0;
alarm[0] = 2;
hsp = 0;
if (grounded)
{
if (spear_rate = 1)
{
if (face_right) {spear_right = action_create_object_motion(obj_spear,x-40,y+10,40,0); obj_spear.image_xscale = 1;}
if (face_left) {spear_left = action_create_object_motion(obj_spear,x+40,y+10,40,180); obj_spear.image_xscale = -1;}
spear_rate = 0;
alarm[1] = 5;
}
}
else
{
if (spear_rate = 1)
{
if (face_right) {spear_right = action_create_object_motion(obj_spear,x-30,y+10,40,0); obj_spear.image_xscale = 1;}
if (face_left) {spear_left = action_create_object_motion(obj_spear,x+30,y+10,40,180); obj_spear.image_xscale = -1;}
spear_rate = 0;
alarm[1] = 5;
}
}
}
Otro error que tengo es a la hora de crear un efecto de polvo cuando la lanza choca con una pared, cuando viaja a la derecha el polvo sale en las coordenadas que le he asignado yo (para que sea en la punta) pero si se mueve hacia la izquierda el sprite se invierte (image.xscale = -1) la nubecita de polvo sale detrás y no en la punta porque mantiene las coordenadas de antes.

¿Hay alguna manera de hacer esto mediante código o simplemente debo añadir otro objeto para la lanza en la otro dirección cos su propio código?
Gracias