А теперь глупый вариант. Без физических движков и пр.
1) Точка двигается по горизонтали (ось X) с некоторой V = X пикс/кадр = const. Относительно небольшой
2) После перемещения по X смотрим, находится ли точка выше или ниже линии. Вычисляем dY между новым положением точки и линией в этой координате по X - примерное изменение высоты на "пройденном" участке.
3) X пересчитывается в соответствии с dY.
4) По оси Y точка ставится на линию согласно новой позиции X.
Логично, что к примеру при подъеме в гору, новое изменение X должно быть меньше X^2/sqrt(X^2 + dY^2) (обозначим A), а при спуске с горы - больше этого значения. Поэтому можно считать новое значение на подъёме, например, как A / (1+y/x). А на спуске 2A - (A / (1+y/x)). Конечно, формулы для примера почти с потолка, как и задание. Однако я думаю, выглядеть будет плюс-минус терпимо.
__________________
jmp $ ; Happy End!
The Cake Is A Lie.
|