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)  






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.