MoveObject -
DANGER1979 - 02.12.2011
MoveObject(objectid, Float:X, Float:Y, Float:Z, Float:Speed, Float:RotX = -1000.0, Float:RotY = -1000.0, Float:RotZ = -1000.0);
Параметры RotX RotY RotZ - углы конечного положения объекта.
Особенность.
Для того чтобы объект двигался вокруг своей оси надо хоть одной из координат добавить минимальное приращение.
MoveObject(objectid, X,Y, Z+0.001, Speed, RotX, RotY, RotZ);
Но после первого вращения объект начинает вести себя как при обычной ф-ии SetObjectRot
Поставил StopObject перед всеми MoveObject. Не помогло.
Поставил StopObject в public OnObjectMoved(objectid). Не помогло.
В чем проблема?
Re: MoveObject -
DANGER1979 - 02.12.2011
Разобрался в чем проблема.
Оказывается координаты X, Y, Z не должны быть одинаковы при повторном использовании MoveObject.
Т.е. для открытия шлагбаумма используем Z+0.001
а для закрытия Z+0.002
Re: MoveObject -
Stepashka - 02.12.2011
И получим взлетающий шлагбаумм)))
Re: MoveObject -
Jon_De - 02.12.2011
закрывать на начальные координаты можно
Re: MoveObject -
DANGER1979 - 03.12.2011
Тут не важно начальные они или конечные.
Координаты центра объекта могут быть одинаковы, но обязательно с разницей на минимальное приращение.
Т.к. если координаты абсолютно одинаковы, то движение из точки А в точку А невозможно. Его просто нет.
Также заметил, что если приращение очень мало, то скорость надо увеличивать.
Допустим при приращении 0.01, скорость 0.005.
А при при приращении 0.001, скорость нужно сделать 0.001, чтобы движение объекты было примерно одинаково.
Кстати шлагбаумы у меня не летают и не летали.
Но StopObject в public OnObjectMoved(objectid) должно быть для надёжности.
Re: MoveObject -
OKStyle - 05.12.2011
Если ты открываешь на Z+0.001, то закрывай на Z. Иначе шлакбаум будет вверх уезжать, как Стёпа сказал.
Re: MoveObject -
Stepashka - 05.12.2011
Quote:
Originally Posted by OKStyle
Стёпа
|
Re: MoveObject -
DANGER1979 - 05.12.2011
OKStyle, да я понял, просто за долгое время игры оно наращивается и центр смещает потихоньку. Хоть это сразу и не заметно.