Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: Croer en Abril 10, 2010, 06:10:11 PM

Título: problema con cambio de sprites segun posicion del raton
Publicado por: Croer en Abril 10, 2010, 06:10:11 PM
En un proyecto en el que estoy trabajando, quiero que el personaje mire siempre hacia el raton, es decir, que si el raton esta arriba cambie por el sprite que mira hacia arriba, si esta abajo por el sprite que mira abajo, etc. El problema esta que no se como hacerlo. He provado verificando la direccion del raton poniendo esto en el evento step del personage(nombre objeto:pers): point_direction(pers.x,pers.y,mouse_x,mouse_y) i luego en el mismo evento step esto: if direction=90{sprite_index=sprite13; global.direcion='arriba';direction=90}else{direction= point_direction(x+0,y+0,mouse_x,mouse_y)};
if direction=270{sprite_index=sprite8; global.direcion='abajo';direction=270}else{direction= point_direction(x+0,y+0,mouse_x,mouse_y)};
if direction=180{sprite_index=sprite12; global.direcion='izquierda';direction=180}else{direction= point_direction(x+0,y+0,mouse_x,mouse_y)};
if direction=0{sprite_index=sprite14; global.direcion='derecha';direction=0}else{direction= point_direction(x+0,y+0,mouse_x,mouse_y)};

if global.direcion='arriba' {sprite_index=sprite13;}
if global.direcion='abajo' {sprite_index=sprite8;}
if global.direcion='derecha' {sprite_index=sprite12;}
if global.direcion='izquierda' {sprite_index=sprite14;}


con todo esto lo consigo hacer pero el problema esta en que el raton tiene que estar a 90 grados, si esta a 90,01 no cambia :'( i eso hace que si mueves el raton a una velocidad rapida sea impossible que cambie el sprite
En definitiva necessitaria que alguin me pudiera ayudar ha hacer lo que pido. No importa si cambiais el codigo i en realidad quiero que gire en 8 direcciones pero aun no le hecho los sprites de las diagonales :-[ :-[ :-[
Gracias de antemano
Título: Re: problema con cambio de sprites segun posicion del raton
Publicado por: Ruisu~ en Abril 10, 2010, 06:21:23 PM
en tal caso pones:

if direction>=45 and direction <135{sprite_index=sprite13; global.direcion='arriba';direction=90}else{direction= point_direction(x+0,y+0,mouse_x,mouse_y)};
if direction>=225 and direction <315{sprite_index=sprite8; global.direcion='abajo';direction=270}else{direction= point_direction(x+0,y+0,mouse_x,mouse_y)};
if direction>=135 and direction <225{sprite_index=sprite12; global.direcion='izquierda';direction=180}else{direction= point_direction(x+0,y+0,mouse_x,mouse_y)};
if direction>=315 and direction <45{sprite_index=sprite14; global.direcion='derecha';direction=0}else{direction= point_direction(x+0,y+0,mouse_x,mouse_y)};


revisa a ver si no me equivoqu? xD
Título: Re: problema con cambio de sprites segun posicion del raton
Publicado por: Croer en Abril 10, 2010, 06:37:29 PM
ok, perfecto  :)
lo que tube que modificarlo porque no me mirava a la derecha, pero lo resolvi asi:
if direction>=45 and direction <135{sprite_index=sprite13; global.direcion='arriba';direction=90}else{direction= point_direction(x+0,y+0,mouse_x,mouse_y)};
if direction>=225 and direction <314{sprite_index=sprite8; global.direcion='abajo';direction=270}else{direction= point_direction(x+0,y+0,mouse_x,mouse_y)};
if direction>=135 and direction <225{sprite_index=sprite12; global.direcion='izquierda';direction=180}else{direction= point_direction(x+0,y+0,mouse_x,mouse_y)};
if direction<=315 and direction <45{sprite_index=sprite14; global.direcion='derecha';direction=0}else{direction= point_direction(x+0,y+0,mouse_x,mouse_y)};

La verdad que no havia caido en utilizar intervalos en vez de un numero en concreto como hacia :-[ ahora puedo continuar con el proyecto. :)
merci Ruisu~
Título: Re: problema con cambio de sprites segun posicion del raton
Publicado por: Johann en Abril 11, 2010, 07:11:07 AM
Ya se habia hecho una pregunta similar, http://www.comunidadgm.org/index.php?topic=10702 y asu vez, en ese post hay un enlace a otro casi de los mismos dias.
Estas respuestas te pueden ayudar.