Curva en Objeto
#1

Hola,

Cуmo puedo hacer para que un objeto tome una curva ( con movimieto incluido ) hacia la derecha o izquierda. Me explico mejor. Es decir, que funciуn deberнa utilizar para que al hacer MoveObject de una posiciуn a otra a la vez dicho objeto haga una curva.
Код:
              ______
           _            _
         _                  _
      _                        _
   _                              _
_
( Algo asн )

Estuve tratando, pero no pude.

Muchas gracias a quien me pueda ayudar.
Reply
#2

Si a lo que vas es simular el efecto de la gravedad, es decir que el objeto suba hasta un punto y luego caiga, habrнa que usar un par de funciones con бngulos, creo.
Reply
#3

toma coordenadas en diferentes puntos y ya que el objeto llege a esa posicion continue con la otra

ejemplo:
Код:
                               ______coordenada 5
               coordenada6 _             _coordenada 4
            coordenada 7_                   _coordenada 3
        coordenada8   _                         _coordenada 2
     coordenada9   _                               _coordenada 1
_
pon el objeto en la coordenada 1 y yaque llege a la coordenada pones moveobject a la coordenada 3 y asi sucesivamente

para comprobar posicion usa if
Reply
#4

Voy a tratar con lo de Josta, lo habнa pensado, pero pensй que habнa otras maneras xD.

Quote:
Originally Posted by MrDeath537
Посмотреть сообщение
Si a lo que vas es simular el efecto de la gravedad, es decir que el objeto suba hasta un punto y luego caiga, habrнa que usar un par de funciones con бngulos, creo.
Que serнan las funciones de seno coseno tangente y todo eso no? Si es eso estoy al horno xD ( mucha matemбtica xD )


Esto capбs me sirve no? http://forum.sa-mp.com/showthread.ph...g+object+curve
Reply
#5

en una de esas te sirve de algo si lo usas bien.
sobre lo de josta, te conviene crearte una funcion que lo haga, seria mas rapido y eficiente
Reply
#6

Lo unico que se me ocurre es lo mismo, tomar todas las coordenadas y usar

MoveObject para cada una de ellas aunque es verdad que seria molesto y tardado T.T
Reply
#7

Podrias hacerlo de la siguiente manera
ese callback es llamado cuando un objeto se termina de mover
pawn Код:
public OnObjectMoved(objectid)
{
    new Float:x,Float:y,Float:z;
    GetObjectPos(objectid,x,y,z);
    if(x==0000.0000 && y ==0000.0000 && z==0000.0000)
    {
    MoveObject(objectid,0001.0000,0001.0000,0001.0000,3.0);
    }
    else if(x==0000.0000 && y==0000.0000 && z==0000.0000)
    {
    MoveObject(objectid,0001.0000,0001.0000,0001.0000,3.0);
    }
    return 1;
}
podrias hacerlo asi sucesivamente
Reply
#8

Quote:
Originally Posted by [J]ulian
Посмотреть сообщение
Me parece que ese include sirve exactamente para esto, pero ni idea como usarlo.
Reply
#9

Creo que lo que Josta dice es lo mejor, y no conocia ese callback.
Bien Josta !

PD: Aca una pequeсa mejora del cуdigo.

pawn Код:
public OnObjectMoved(objectid)
{
    new Float:x,Float:y,Float:z;
    if(objectid == ID_DEL_OBJETO)
    {
        GetObjectPos(objectid, x, y, z);
        if(x == 0001.0000 && y == 0001.0000 && z == 0001.0000)
        {
            MoveObject(objectid, 0000.0000, 0000.0000, 0000.0000, 3.0);
        }
        else if(x==0000.0000 && y==0000.0000 && z==0000.0000)
        {
            MoveObject(objectid, 0001.0000, 0001.0000, 0001.0000, 3.0);
        }
    }
    else if(objectid == ID_DEL_OBJETO2)
    {
        GetObjectPos(objectid, x, y, z);
        if(x == 0000.0000 && y == 0000.0000 && z == 0000.0000)
        {
            MoveObject(objectid, 0001.0000, 0001.0000, 0001.0000, 3.0);
        }
        else if(x == 0001.0000 && y == 0001.0000 && z == 0001.0000)
        {
            MoveObject(objectid, 0002.0000, 0002.0000, 0002.0000, 3.0);
        }
    }
    return 1;
}
Asi se podria trabajar con varios objetos y no con uno solo.
Reply
#10

Ya me di una idea, gracias a todos. PD: Estuve revisando ese include que puse y tambiйn me servirб.

Un saludo!
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)