Direccion del sprite? norte.sur.este.oeste - Solucionado!

Consulte acerca de programas, técnicas, algoritmos etc.

Direccion del sprite? norte.sur.este.oeste - Solucionado!

Notapor d00ze » Mar Jun 07, 2011 6:09 pm

Hola buenas, queria saber si alguien conoce alguna funcion o algun mecanismo para detectar en que direccion se mueve el sprite, si es norte, sur, este y oeste,
si fuera en c++ / SDL mejor.
Última edición por d00ze el Mar Jun 07, 2011 6:30 pm, editado 1 vez en total
d00ze
 
Mensajes: 10
Registrado: Sab Jun 04, 2011 7:43 pm

Re: Direccion del sprite? norte - sur - este - oeste ?

Notapor d00ze » Mar Jun 07, 2011 6:29 pm

Vale, llevo toda la tarde pensando como hacerlo, y ahora que posteo va y se me ocurre.... xD lo siento.
Os posteo como lo hice por si a alguien le es de interes, aunque seguro que es una forma bastante chapucera.

int auxx, auxy;

auxx=posx; //variable auxiliar que guarda la posicion inicial de x
auxy=posy; //variable auxiliar que guarda la posicion inicial de y

posx+=speedx;

if(auxx<posx&&auxy==posy){
norte=false;
sur=false;
este=true;
oeste=false;
}else{
norte=false;
sur=false;
este=false;
oeste=true;
}

if(auxy<posy&&auxx==posx){
norte=false;
sur=true;
este=false;
oeste=false;
}
if(auxy>posy&&auxx==posx){
norte=true;
sur=false;
este=false;
oeste=false;
}
d00ze
 
Mensajes: 10
Registrado: Sab Jun 04, 2011 7:43 pm

Re: Direccion del sprite? norte.sur.este.oeste - Solucionado

Notapor robloz » Dom Abr 29, 2012 11:10 pm

Otra forma sería detectando la tecla que ha pulsado y en función de ello asignarle la dirección correspondiente

Código: Seleccionar todo
   if(key->EstadoDown(key->abajo)){
         sur = true;
      }else if(key->EstadoDown(key->arriba)){
         norte = true;
      }else if(key->EstadoDown(key->derecha)){
         este = true;
      }else if(key->EstadoDown(key->izquierda)){
         oeste = true;
      }
robloz
 
Mensajes: 2
Registrado: Mié Nov 22, 2006 11:28 pm

Re: Direccion del sprite? norte.sur.este.oeste - Solucionado

Notapor hechelion » Lun Abr 30, 2012 12:01 am

¿No te es más fácil analizar simplemente la variable speed?

Si speedX mayor a 0, entonces te mueves al este.
si speedX menor a 0, entonces te mueves al oeste.

y lo mismo para speedY.

EDIT:
Acabo de mirar las fechas de los post originales y veo que tenemos a un necromante entre nosotros.
Avatar de Usuario
hechelion
 
Mensajes: 29
Registrado: Vie Ene 13, 2012 3:06 pm
Ubicación: Houston


Volver a General

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado