Duda con speed de MoveObject
#1

Querнa saber si habrнa alguna forma de hacer mover un objeto que salga del punto X, Y, Z lento y que vaya ganando velocidad, y luego cuando vaya por la mitad que vaya parando poco a poco (tipo InterpolateCamera), a mi se me ocurre de una forma (con un loop) pero no se a ver si se os ocurre algo.

Gracias.
Reply
#2

Ahm
Velocidad = Aceleraciуn * Tiempo
Si tuvieras una aceleraciуn de 3.0 m/(s^2) entonces te recomiendo que hagas un MoveObject cada segundo y al siguiente MoveObject le agregues al parбmetro Speed 3.0 unidades.



Omite lo anterior que dije, ese mйtodo serнa poco preciso pero serнa una aproximaciуn.
Reply
#3

Con un timer que asigne ++ a la variable tiempo?
Reply
#4

pawn Код:
// Podrнas hacer todo esto con 'enum' si deseas.
new Float:Position[MAX_OBJECTS][3];
new Float:Distance[MAX_OBJECTS];
new Float:SpeedObject[MAX_OBJECTS];
new TimerSpeed[MAX_OBJECTS];


stock MoveObjectEx(objectid, Float:fX, Float:fY, Float:fZ, Float:Speed)
{
    Position[objectid][0] = fX;
    Position[objectid][1] = fY;
    Position[objectid][2] = fZ;
    Distance[objectid] = GetObjectDistanceToPos(objectid, fX, fY, fZ); // Busca una funciуn, lo encontrarбs por ahн en ******.
    TimerSpeed[objectid] = SetTimerEx("SetObjectAcceleration", interval, true, "d", objectid);
    MoveObject(objectid, fX, fY, fZ, Speed);
}

forward SetObjectAcceleration(objectid);
public SetObjectAcceleration(objectid)
{
    new Float:Dist = GetObjectDistanceToPos(objectid, Position[objectid][0], Position[objectid][1], Position[objectid][0];
    SpeedObject[objectid] += (Distance[objectid]-Dist) < Distance[objectid]/2) ? (2.0) : (SpeedObject[objectid] -= 1.0);
    MoveObject(objectid, Position[objectid][0], Position[objectid][1], Position[objectid][0], SpeedObject[objectid]);
    return 1;
}

Eso serнa una forma, no lo probй, pero creo que te deberнa funcionar bien.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)