![]() |
Передвижение в трехмерном пространстве
Есть изметрическое поле (1:2) + ось Z.
Как сделать перемещение объектов с учетом двумерности экрана (т.е. объект кторый движется "в сторону" экрана, по сути не двигался)? |
Написать функцию трансформации. На входе мировые xyz, на выходе экранные xy
Скармливаете оригинальные координаты мира, и передаете результат функции перемещения.. И ходите где угодно... |
Я понимаю, вам нужен эффект перспективы, когда дальние объекты кажутся маленькими, а ближние - большими?
|
2 chingachgoog
Нет.. 2 LinuxVideo Написал, но я имел в виду нечто другое. Такая ситауация: Есть объект, который стоит "очень далеко" от экрана, в самой-самой глубине. Он движется "к экрану". В трехмерном пространстве эта дистанция равна, к примеру, 400 пикселей и он должен пройти это расстояние, скажем, за 20 сек. А в двумерном - 5 пикселей. И у меня он пролетает за 1 сек, т.к. не учтен угол наклона вектора движения к "экрану". Вот это меня интересовало. |
реальные скорости тоже необходимо пересчитывать применительно к поекции (3хмерный вектор проецируем на 2мерную плоскость экрана)
|
> скажем, за 20 сек. А в двумерном - 5 пикселей. И у меня он пролетает за 1 сек
Так изометрия, или перспектива? Вы уж определитесь сначала. Если изометрия - все расстояния равны. Если перспектива - вдалеке все медленно, а рядом с камерой - близко Если персонаж должен двигаться с равной скоростью, то это изометрия. На вход функции трансформации будет 400 точек, на выходе 5 точек. Между ними будет куча ответов вроде 2.9837453677, которые тоже надо использовать, а не пропускать. У вас же похоже использованы только 2 точки, вот персонаж и ходит по экранным координатам, делая 5 шагов. Если так охота оптимизации, и точно знаете, что изометрию не променяете, то меряйте как и сейчас, потом 5 пикселей делите на 400 шагов, и за 400 шагов смещайте его по 0.0125 пикселя. Ну или с таймерами химичте, чего ближе. |
Цитата:
|
т.е. быстро.
|
| Часовой пояс GMT +4, время: 00:07. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.