Инерция

  • Автор темы denis79513
  • Дата начала
Статус
Закрыто для дальнейших ответов.
D

denis79513

Гость
#1
Как реализовать инерцию на blitz3d (диалект basic). Допустим имеется предмет, который движется со скоростью speed# при нажатии определенной клавиши, нужно, чтобы при отпускании этой клавиши, предмет продолжал двигаться некоторое время по инерции.
Заранее всем спасибо.
 
R

Rus59Wolf

Гость
#2
Оказывается у меня старая версия, так что если что извиняйте...

Мы делали это примерно так-
заводили для объекта с переменной скоростью счетчик времени (обычное число), затем происходило следующее- (OBJ_X-одна из координат, OBJ_speed- текущая скорость причем именно по x, по у она может быть иной, time - счетчик времени)

...
цикл программы
If KeyDown(203) Then;left
OBJ_speed=-speed
time=millisecs()
Else

ENDIF
OBJ_X=OBJ_X+OBJ_speed
if time<>millisecs() then
if OBJ_speed>0 then
OBJ_speed=OBJ_speed-1
else
if OBJ_speed<0 then
OBJ_speed=OBJ_speed+1
endif
endif
endif

...

согласен, код ужасный, однако он работал. Этот участок кода отвечал за замедление кораблика в скрол шутере. Вообще для более полных формул можно почитать физику - формулы зависимости координаты от времени и ускорения. Для движения в произвольном направлении в эту формулу просто подставляются вектора по вертикали и горизонтали

Добавлено: Оказывается у меня старая версия, так что если что извиняйте...

Мы делали это примерно так-
заводили для объекта с переменной скоростью счетчик времени (обычное число), затем происходило следующее- (OBJ_X-одна из координат, OBJ_speed- текущая скорость причем именно по x, по у она может быть иной, time - счетчик времени)

...
цикл программы
If KeyDown(203) Then;left
OBJ_speed=-speed
time=millisecs()
Else

ENDIF
OBJ_X=OBJ_X+OBJ_speed
if time<millisecs()-100 then
if OBJ_speed>0 then
OBJ_speed=OBJ_speed-1
else
if OBJ_speed<0 then
OBJ_speed=OBJ_speed+1
endif
endif
endif

...

согласен, код ужасный, однако он работал. Этот участок кода отвечал за замедление кораблика в скрол шутере. Вообще для более полных формул можно почитать физику - формулы зависимости координаты от времени и ускорения. Для движения в произвольном направлении в эту формулу просто подставляются вектора по вертикали и горизонтали.

формулы можно посмотреть здесь: http://www.physics.ru/courses/op25part1/co...ph4/theory.html
 
D

denis79513

Гость
#3
Большое спасибо, буду разбираться...
 
Статус
Закрыто для дальнейших ответов.