Marzo 15, 2015, 04:13:58 PM Ultima modificación: Marzo 17, 2015, 01:23:16 PM por zHeMaa
Hola buenas, como puedo hacer que cuando mi personaje dispare (en mi caso) para arriba, mire para arriba y así con las 4 direcciones?

En el objeto bala tengo puesto esto:
move_towards_point(mouse_x,mouse_y,global.velocidad_ataque);

Que dirige la bala hacia donde toco con el dedo en android, o el cursor en PC. Pero el problema esta en que el jugador esta mirando para abajo, y me gustaría poner que si por ejemplo dispara para arriba se vea el sprite del jugador arriba y así con izquierda, derecha y abajo..

Muchísimas gracias de antemano, un saludo!! :)

Supongo que es un juego con vista desde arriba. En el evento STEP pone esto:

dd=round(point_direction(x,y,mouse_x,mouse_y)/90) ///Para 8 direcciones cambia 90 por 45
image_angle=dd*90


Si solo queres que mire cuando dispares solo cambialo a ese evento.

Cita de: 3dgeminis en Marzo 15, 2015, 09:25:56 PM
Supongo que es un juego con vista desde arriba. En el evento STEP pone esto:

dd=round(point_direction(x,y,mouse_x,mouse_y)/90) ///Para 8 direcciones cambia 90 por 45
image_angle=dd*90


Si solo queres que mire cuando dispares solo cambialo a ese evento.

No me funciona.. las balas se quedan quietas donde se crean.

Igual no me he explicado bien, así que intentare explicarme algo mejor haber si hay mas suerte.
Yo tengo un personaje el cual lo muevo con el teclado, hasta ahí todo bien, y a la hora de disparar las balas van donde pulso con el cursor en la pantalla, hasta ahí todo bien también.

El problema es que el jugador cuando esta quieto si dispara arriba y su ultimo movimiento con el teclado fue hacia abajo (entonces el sprite se queda mirando abajo), el jugador se queda mirando abajo, pero disparando para arriba, que pasa.. que no queda estético, lógicamente..

Yo lo he estado intentando pero que va.. no hay manera, lo que yo intentaba era basándome en la imagen que dejare mas adelante es que si mi código de disparo:
move_towards_point(mouse_x,mouse_y,global.velocidad_ataque);
Dispara hacia arriba que aya un if o algo que haga que si el jugador dispara entre las direcciones 135 y 45, el sprite mire hacia arriba, si dispara entre las direcciones 225 y 135, hacia la izquierda, 315 y 225 abajo y por ultimo entre 45 y 315 derecha.

Direcciones: http://i.imgur.com/PpVd0.jpg

Gracias de antemano! :)

El codigo que te pase deberia servir, a no ser que entendi mal, te paso un ejemplo a ver si eso sirve

Vaale.. ya se lo que falla, el código funciona a la perfección y el ejemplo es exactamente lo que yo tengo, la diferencia es que yo tengo 4 sprites (arriba, abajo, izquierda y derecha), el ese ejemplo solo tiene 1 que según donde mire el cursor del ratón, el sprite mira hacia esa misma posición.

Vamos que lo que yo necesito es exactamente lo mismo que el ejemplo pero con 4 sprites, en vez de 1.

Ahora probare haber si lo consigo, si lo consigo ya diré algo por aquí, si no digo nada es que sigo con el problema..  :-[

Muchas gracias! :)

Si aun no lo has solucionado te muestro una forma de hacerlo:

dd=round(point_direction(x,y,mouse_x,mouse_y)/90)

switch(dd)
{
case 4: sprite_index=sprite_derecha  break;
case 0: sprite_index=sprite_derecha  break;
case 1: sprite_index=sprite_arriba  break;
case 2: sprite_index=sprite_izquierda  break;
case 3: sprite_index=sprite_abajo  break;
}

Cita de: 3dgeminis en Marzo 17, 2015, 08:02:55 AM
Si aun no lo has solucionado te muestro una forma de hacerlo:

dd=round(point_direction(x,y,mouse_x,mouse_y)/90)

switch(dd)
{
case 4: sprite_index=sprite_derecha  break;
case 0: sprite_index=sprite_derecha  break;
case 1: sprite_index=sprite_arriba  break;
case 2: sprite_index=sprite_izquierda  break;
case 3: sprite_index=sprite_abajo  break;
}


Muchísimas gracias! no, no lo había solucionado aun y me estaba comiendo la cabeza muchísimo! un saludo :)