Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Передвижение в трехмерном пространстве (http://www.flasher.ru/forum/showthread.php?t=108946)

BlackChuvak 04.03.2008 04:21

Передвижение в трехмерном пространстве
 
Есть изметрическое поле (1:2) + ось Z.
Как сделать перемещение объектов с учетом двумерности экрана (т.е. объект кторый движется "в сторону" экрана, по сути не двигался)?

LinuxVideo 04.03.2008 09:51

Написать функцию трансформации. На входе мировые xyz, на выходе экранные xy
Скармливаете оригинальные координаты мира, и передаете результат функции перемещения..
И ходите где угодно...

chingachgoog 04.03.2008 12:04

Я понимаю, вам нужен эффект перспективы, когда дальние объекты кажутся маленькими, а ближние - большими?

BlackChuvak 04.03.2008 14:55

2 chingachgoog
Нет..

2 LinuxVideo
Написал, но я имел в виду нечто другое. Такая ситауация:
Есть объект, который стоит "очень далеко" от экрана, в самой-самой глубине. Он движется "к экрану". В трехмерном пространстве эта дистанция равна, к примеру, 400 пикселей и он должен пройти это расстояние, скажем, за 20 сек. А в двумерном - 5 пикселей. И у меня он пролетает за 1 сек, т.к. не учтен угол наклона вектора движения к "экрану".
Вот это меня интересовало.

Double 04.03.2008 18:49

реальные скорости тоже необходимо пересчитывать применительно к поекции (3хмерный вектор проецируем на 2мерную плоскость экрана)

LinuxVideo 04.03.2008 19:29

> скажем, за 20 сек. А в двумерном - 5 пикселей. И у меня он пролетает за 1 сек

Так изометрия, или перспектива? Вы уж определитесь сначала.
Если изометрия - все расстояния равны.
Если перспектива - вдалеке все медленно, а рядом с камерой - близко

Если персонаж должен двигаться с равной скоростью, то это изометрия. На вход функции трансформации будет 400 точек, на выходе 5 точек. Между ними будет куча ответов вроде 2.9837453677, которые тоже надо использовать, а не пропускать. У вас же похоже использованы только 2 точки, вот персонаж и ходит по экранным координатам, делая 5 шагов. Если так охота оптимизации, и точно знаете, что изометрию не променяете, то меряйте как и сейчас, потом 5 пикселей делите на 400 шагов, и за 400 шагов смещайте его по 0.0125 пикселя. Ну или с таймерами химичте, чего ближе.

MrPoma 04.03.2008 19:50

Цитата:

Сообщение от LinuxVideo
рядом с камерой - близко

Классно сказано.

LinuxVideo 04.03.2008 23:53

т.е. быстро.


Часовой пояс GMT +4, время: 00:07.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.