Problema con la aceleracíon

Started by Danielo515, August 29, 2012, 07:11:54 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Danielo515


Buenos días  ;D


Llevo toda la mañana comiendome la olla con cómo simular un misil que se dirige.
Sólo quiero que se ajuste en el eje X, con lo cual sólo tengo que controlar una dimensión, pero demonios, como cuesta.


El caso es que quiero crear cierto efecto elástico, quiero que vaya aumentando su velocidad (que en el código lo que se llama velocidad en realidad es aceleración) hasta un punto máximo, y luego se pase del objetivo, y vaya frenando hasta que se pare, coja velocidad otra vez, pero en esta ocasión menos velocidad (porque se supone que estaría más cerca) y se reajuste, y así poco a poco hasta que estén alineados.


Este código funciona más o menos, pero no como yo querría ni tampoco entiendo porqué  :P




Si alguien me ayuda a que se ajuste  así de a poco y luego se tire al cueyo, yo le doy un besito.

while ( y > 0 )
y += direccion;
velocidad=0;

if(cont_ID > 0)
target = IDs_ENEMIGOS[misil%cont_ID]; //cont ID será el máximo valor que se deba alcanzar
end
// el bucle principal llena a cada frame las ids, y el cont_ID siempre estará apuntando a lo último
if (exists(target))
if(target.x < x)
velocidad = -6;
elif (target.x > x)
velocidad = 6;
end

while(exists(target) and y >0 ) //esto es para bloquear el target al que apunta
precision = abs(x - target.x);
if( (x+velocidad > target.x) or velocidad > precision )
velocidad --;
elif(velocidad < 11 )
velocidad +=3;
end
//if (velocidad > 10) velocidad=10; elif (velocidad < -10) velocidad = -10; end


/*if(  < 2 ) //para que se lance como un loco
direccion = -16;
else
direccion = -1;
end*/
say("vel "+ velocidad + " x "+ x + " xt " + target.x + " dif "+ precision);


x+=velocidad;


y = y + direccion;
mirilla(target.x,target.y,target.z-100);
frame;
end//while

end

Mr Matsusaka

No se si entiendo pero, lo que quieres hacer es que el misil dibuje eses cada vez menos pronunciadas hasta que se centre?

Danielo515

Quote from: Mr Matsusaka on September 02, 2012, 04:24:50 PM
No se si entiendo pero, lo que quieres hacer es que el misil dibuje eses cada vez menos pronunciadas hasta que se centre?

Eso es exactamente lo que quiero,si

Enviado desde mi GT-N7000 usando Tapatalk 2


SplinterGU

con near_angle+advance haces eso... pone un angulo medianamente chico como parametro y asi lo vas a lograr.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

SplinterGU

bueno, para que se vaya frenando vas a tener que usar tambien algo basado en distance...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2