PDA

Просмотр полной версии : [Function] MoveObjectWithAcceleration



Seregamil
24.07.2014, 16:14
Функция, которая равномерно развивает скорость объекта от заданной минимальной, до заданной максимальной, за заданное количество времени.


http://www.youtube.com/watch?v=b2Z0PsWKRQg&feature=youtu.be

Сама функция:


forward MoveObjectWithAcceleration( objectid, Float: startSpeed, Float: endSpeed, Float: x, Float: y, Float: z, accelerationTime );
public MoveObjectWithAcceleration( objectid, Float: startSpeed, Float: endSpeed, Float: x, Float: y, Float: z, accelerationTime ){//by Seregamil
if( !IsValidObject( objectid ) )
return ;

new Float: newSpeed = ( endSpeed + startSpeed ) / 10 + startSpeed ;

if( newSpeed >= endSpeed )
return ;

MoveObject( objectid, x, y, z, newSpeed );

SetTimerEx( "MoveObjectWithAcceleration", accelerationTime / 10, false, "ifffffi", objectid, newSpeed, endSpeed, x, y, z, accelerationTime );
}

Использование:

MoveObjectWithAcceleration( Объект, начальная скорость, конечная скорость, координаты XYZ финальной позиции, Время в мс, за которое объект должен ускориться );

wAx
24.07.2014, 16:28
=) Отличная функция. Краусаучик!

- - - Добавлено - - -

Только не будет ли рекурсии?


SetTimerEx( "MoveObjectWithAcceleration", accelerationTime / 10, false, "ifffffi", objectid, newSpeed, endSpeed, x, y, z, accelerationTime );

L0ndl3m
24.07.2014, 16:45
Интересная функция. Недавно что-то типа похожее делал:

http://www.youtube.com/watch?v=MKxxd3uBwYc

Seregamil
24.07.2014, 16:58
=) Отличная функция. Краусаучик!

- - - Добавлено - - -

Только не будет ли рекурсии?


SetTimerEx( "MoveObjectWithAcceleration", accelerationTime / 10, false, "ifffffi", objectid, newSpeed, endSpeed, x, y, z, accelerationTime );
На ней все и построено.

Недавно что-то типа похожее делал:
Я ж извращенец, я в добавок миниган активировал.