![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#8
|
||||
|
||||
![]() А теперь глупый вариант. Без физических движков и пр.
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. Последний раз редактировалось Bargest, 15.03.2016 в 23:06. |