Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





[vb6] Caminar En Diagonal?

Iniciado por Abc7, 30 de Julio de 2004, 10:22:58 PM

« anterior - próximo »

gdl

 Confirmado: estoy apamplado,

creo que el código funcionaría (ni mejor ni peor, porque el otro de arriba no funcionaba) si ponemos


int deltaX=0, deltaY=0;
int velocidad=pj->VelocidadDelBicho();

if (keys[teclado.arriba]) deltaY-=velocidad;
if (keys[teclado.abajo]) deltaY+=velocidad;
if (keys[teclado.izquierda]) deltaX-=velocidad;
if (keys[teclado.derecha]) deltaX+=velocidad;

if(!(deltaX || deltaY))
 return;//Por sugerencia de shephiroth

if(deltaX && deltaY)
{
//Ohhh dos teclas pulsadas, corrijo velocidad para diagonal.
 deltaX=(deltaX * F_RAIZDEDOSSOBREDOS)>>F_B;//Por sugerencia de Pogacha
 deltaY=(deltaY * F_RAIZDEDOSSOBREDOS)>>F_B;
}

pj->MueveBicho(deltaX,deltaY);


Mira que poner un OR para ver si dos teclas (una *Y* otra) estaban pulsadas.

Luego me tiro meses depurando....  (nooo)