Форум: "Игры";
Текущий архив: 2005.01.30;
Скачать: [xml.tar.bz2];
ВнизDirect3D Найти похожие ветки
← →
VolanD666 (2004-10-23 07:48) [0]Привет, пиплы. Кто-нить знает, как замутить вращение камеры машкой (как в Action"ах) по горизонтали. Если можно, пожалуйста, подробней.
Спасибо.
← →
Sphinx (2004-10-23 14:58) [1]> вращение камеры машкой
А можен Галькой или еще какой девушкой? Тебе их не жалко?
Я честно вообще не понял что ты хочешь? Поворачивать "взгляд"? Пересчитывай сцену под другим углом.
← →
VolanD666 (2004-10-25 15:10) [2]Сорри! МЫШКОЙ
А вращать, ну как в CounterStrike, например.
← →
A22 (2004-10-25 20:29) [3]RotationYawPitchRoll посмотри
← →
NailMan © (2004-10-26 08:42) [4]Ну например сферическими координатами и
D3DXMATRIX *WINAPI D3DXMatrixLookAtLH(D3DXMATRIX *pOut,
CONST D3DXVECTOR3 *pEye,
CONST D3DXVECTOR3 *pAt,
CONST D3DXVECTOR3 *pUp
);
В данном случае по сферическим координатам изменяется точка pAt(точка прицела камеры). Вектор pEye является точкой расположения камеры. Полученную матрицу уже устанавливаешь в девайс.
Соответственно угол Theta есть угол вращения по горизонтали(мышка-x), и угол Phi есть угол вращения по вертикали(мышка-y). Радиус пофиг какой, но больше 1.
ЗЫ: Формулу преобразования сферических координат в декартовы XYZ в гугле найдешь.
---
WBR, NailMan aka 2:5020/3337.13
← →
VolanD666 (2004-10-26 15:19) [5]Да, как вращать, то я знаю(даже знаю как двигаться), но чЁт она дрыгается.
--------------------------------------------------------------
There will come night and from darkness there will be a VolanD
← →
NailMan © (2004-10-26 16:18) [6]ТОгда фильтруй ввод мышовый. Сравнивай текущее значение смещения координаты и предыдущее, а лучше еще с парой предшедших значений. Если отклонение значений непостоянно(в каждом захвате координаты) и имеет большое отклонение(мышь дрожит), значит используй усредненное или отбрасывай недостоверный результат, подсовывая предыдущий.
---
WBR, NailMan aka 2:5020/3337.13
← →
VolanD666 (2004-10-27 14:29) [7]Все исправил. Оказалось, это в Buildere косяк. Я объявляю переменную типа float(real-в Delphi), а все вычисления с ней должен опять преобразовывать в float:
angle+=(float)(ClientWidth/2 -MPos.x)/200;
Страницы: 1 вся ветка
Форум: "Игры";
Текущий архив: 2005.01.30;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.036 c