Форумы на Наша-Life
Home user CP  
Календарь событий Найти других пользователей Часто задаваемые Вопросы Поиск  
Автор
Тема
Создать Новую Тему    Ответить
Stridemann
(Инженер-изобретатель)

Зарегистрирован: Jun 2009
Проживает: Украина/Киев/
Написал: 2304 сообщений

Оценка: 95 Votes 95 чел.

Developer 
Функция ускорения игрока
Сообщение #1054926
Огромная проблема задача стала предо мной..
Мне нужно знать функцию (геометрическое положение точек на графике) ускорения игрока для последующей симуляции его движения..

Удалось мне измерять этот график, точность которого под сомнением (пару ошибочек видны невооруж. глазом).

http://img193.imageshack.us/img193/3600/foruq.png

(как мерял: поставил физбокс, к нему подключил point_velicitycensor, от него аутпут на logic_compare: Velocity -> Set Value Compare, в консоль пишем developer 2 и получаем в консоль все данные скорости в виде аутпутов).

Программеры, ау, есть кто в живых? Маньяк куда-то пропал, не знаю к кому обратится. Хотя что Breever придет на помощь..
Нужно как-то узнать с исходного кода за сколько сек игрок ускоряется до макс. скорости (175 u\s) и за сколько останавливается. . точнее не эти цифры а именно "функцию".. она теоретически должна быть параболической..
Кто поможет..?
Или кто мб поможет замерять это дело как-то..
Old Post 08-12-2011 21:58
Stridemann отсутствует Посмотреть данные 'Stridemann' Отправить Приватное Сообщение для 'Stridemann' Найти другие сообщения 'Stridemann' Добавить Stridemann в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
Stone
(My Life is Real Project)

Зарегистрирован: Mar 2005
Проживает: Россия/Питер
Написал: 3475 сообщений

Оценка: 67 Votes 67 чел.

Старожил 
Сообщение #1054937
Я думаю там обычная экспонента - ease-in, ease-out.. Нужны только коэффициенты
Old Post 09-12-2011 05:22
Stone отсутствует Посмотреть данные 'Stone' Отправить Приватное Сообщение для 'Stone' Найти другие сообщения 'Stone' Добавить Stone в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
mentat
(Member)

Зарегистрирован: Mar 2010
Проживает: Ukraine/Донецк
Написал: 560 сообщений

Оценка: 11 Votes 11 чел.

Сообщение #1054940
Ну, из твоего графика разгона я бы аппроксимировал прямую...
А первый похож на лаг велосити (четыре раза по три точки со смещением... Если учесть что скорость изменяется скачками, вполне может быть просто две прямые... Типа занос и равномерное торможение)... Но трудно сказать... Где все точки между второй и третьей?
Old Post 09-12-2011 06:13
mentat отсутствует Посмотреть данные 'mentat' Отправить Приватное Сообщение для 'mentat' Найти другие сообщения 'mentat' Добавить mentat в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
manJak
(маппер-теоретик)

Зарегистрирован: Feb 2006
Проживает: Mother Russia/Moscow
Написал: 2953 сообщений

Оценка: 66 Votes 66 чел.

Developer Старожил 
Сообщение #1054960
Ээ.. Ну, начнём с того, что торможение игрока зависит от трения поверхности, по которой он идёт.
Ну как, я ещё не отбил желание этим заниматься?
Old Post 09-12-2011 10:39
manJak отсутствует Посмотреть данные 'manJak' Отправить Приватное Сообщение для 'manJak' Найти другие сообщения 'manJak' Добавить manJak в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
Stridemann
(Инженер-изобретатель)

Зарегистрирован: Jun 2009
Проживает: Украина/Киев/
Написал: 2304 сообщений

Оценка: 95 Votes 95 чел.

Developer 
Сообщение #1054980
Так, отлично, хоть ответили..) Не ожидал)

Начнем с того что это Portal 2. Там учета движения по поверхности нету. (грубо говоря)

>>А первый похож на лаг велосити
Да, это так.. Не знаю, лаг какой-то..
Не важно, мне нужна лишь эта экспоненциальная функция..
Разгон игрока: за 0.2 сек
Остановка: 0.6 сек

Нужна лишь линия, чтобы я знал какая скорость у игрока при остановке.. скажем в 0.4 t. (к примеру)
Old Post 09-12-2011 13:42
Stridemann отсутствует Посмотреть данные 'Stridemann' Отправить Приватное Сообщение для 'Stridemann' Найти другие сообщения 'Stridemann' Добавить Stridemann в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
manJak
(маппер-теоретик)

Зарегистрирован: Feb 2006
Проживает: Mother Russia/Moscow
Написал: 2953 сообщений

Оценка: 66 Votes 66 чел.

Developer Старожил 
Сообщение #1055002
> Там учета движения по поверхности нету.
Хм. Ну ладно, допустим нету. Допустим что и поверхность горизонтальная, так что игнорим гравитацию. Но всё равно неизвестно по какому закону движется игрок..

v(t) = Vнач - a*t, где a - собственно, торможение игрока, если бы оно было константой. Из твоего графика непонятно, константа это или нет, так что хз.. Если всё же константа, то получаем линейную функцию, наклон только подобрать надо)
Old Post 09-12-2011 16:38
manJak отсутствует Посмотреть данные 'manJak' Отправить Приватное Сообщение для 'manJak' Найти другие сообщения 'manJak' Добавить manJak в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
 
Stridemann
(Инженер-изобретатель)

Зарегистрирован: Jun 2009
Проживает: Украина/Киев/
Написал: 2304 сообщений

Оценка: 95 Votes 95 чел.

Developer 
Сообщение #1055016
То есть ты думаешь линейная функция?

Ну хорошо, у меня появилась еще одна мысль как адекватно замерять скорость.. point_velicitycensor более менее адекватно измеряет скорость.. подключу его к разным энтитям.. (еще не понял что буду делать, но буду действовать методом тыка пока не получу адекватные данные..)
Old Post 09-12-2011 18:58
Stridemann отсутствует Посмотреть данные 'Stridemann' Отправить Приватное Сообщение для 'Stridemann' Найти другие сообщения 'Stridemann' Добавить Stridemann в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
manJak
(маппер-теоретик)

Зарегистрирован: Feb 2006
Проживает: Mother Russia/Moscow
Написал: 2953 сообщений

Оценка: 66 Votes 66 чел.

Developer Старожил 
Сообщение #1055030
Может быть линейная. А может и не линейная)

Даже после того, как я посмотрел на CGameMovement::Friction в gamemovement.cpp, я толком не понял, что она делает.
Если хочется большой точности, то можешь код из этой функции приспособить для дискретного вычисления (в цикле там или рекурсивно), но это чур без меня. =)
Old Post 09-12-2011 21:16
manJak отсутствует Посмотреть данные 'manJak' Отправить Приватное Сообщение для 'manJak' Найти другие сообщения 'manJak' Добавить manJak в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
Все время в GMT . Сейчас 23:39.
Создать Новую Тему    Ответить

Быстрый ответ
Ваше Имя:
Хотите Зарегистрироваться?
Ваш Пароль:
Забыли свой Пароль?
Вы можете оставлять свои комментарии анонимно, просто введя свои имя и оставив пустым поле пароля.
Ваш ответ:

[проверить размер]
[транслит в win] | [?]
[русская клавиатура]

Дополнительно: Подтверждение по E-Mail


Быстрый переход:
 
Оцените эту Тему:
 

Правила форума:
Создание Тем не разрешено
Создание Сообщений разрешено
Создавать Вложения не разрешено
Редактирование Сообщений не разрешено
Коды HTML запрещены
Коды форума разрешены
Смайлики разрешены
Коды [IMG] запрещены