поворот машины в 3д

  Вход на форум   логин       пароль   Забыли пароль? Регистрация
On-line:  

Раздел: 
Game Maker Форум / Техника Создания 3D игр / поворот машины в 3д

Страницы: 1  новая тема

Автор Сообщение

гроссмейстер
Группа: Сообщество GM
Сообщений: 223
Добавлено: 27-09-2006 01:10
у меня машина поворачивает не вокруг своей оси, а вокруг точки х=0 у=0. как сделать так, чтоб машина поворачивалась как при значении direction в 2д? ...машина то кувыркается на месте, то летает вокруг точки с бешенной скоростью...
помогите...

мастер
Группа: Сообщество GM
Сообщений: 100
Добавлено: 27-09-2006 08:32
Я чё то не понял, чё ты от нас хочешь?
Объясни подробнее.

гроссмейстер
Группа: Сообщество GM
Сообщений: 223
Добавлено: 27-09-2006 13:05
я хочу сделать поворот модели.
d3d_transform_add_rotation_z(angle)

мастер
Группа: Сообщество GM
Сообщений: 100
Добавлено: 28-09-2006 08:37

d3d_transform_add_rotation_x(xdir);
d3d_transform_add_rotation_y(ydir);
d3d_transform_add_rotation_z(zdir);
d3d_transform_add_scaling(1,1,1);
d3d_transform_add_translation(x,y,z);
d3d_model_draw(model,0,0,0,texture);
d3d_transform_set_identity();

гроссмейстер
Группа: Сообщество GM
Сообщений: 223
Добавлено: 28-09-2006 20:33
всё равно через точку 0,0 проходит.

гроссмейстер
Группа: Сообщество GM
Сообщений: 287
Добавлено: 29-09-2006 00:27
В справке про это написано:


Поймите, что вращение и масштабирование, которые касаются начала мира, не касаются объекта, который должен быть нарисован. Если объект находиться не в начале, то он может переместиться в другое место - не в то, что нужно. Чтобы, например, вращать объект вокруг своей оси x, мы должны сначала перевести его в начало, затем его вращать и, наконец, перевести его в свою позицию. Необходимы некоторые функции для установки преобразований.
Следующие примеры могут пояснить это подробнее. Допустим, что у Вас есть спрайтspr, который Вы хотите нарисовать в позиции (100,100,10). Для этого Вы можете использовать следующие коды.


{
d3d_transform_set_translation(100,100,10);
draw_sprite(spr,0,0,0);
d3d_transform_set_identity();
}

Отметьте, что поскольку мы используем перевод, то мы должны теперь нарисовать спрайт в позиции (0,0). (Это предполагает, что текущий образец объекта имеет глубину 0! Если Вы не уверены, то устанавливайте первоначальную глубину.) Если мы должны использовать это в своём FPS, то мы не захотим видеть спрайт. Причина в том, что он всё ещё параллелен плоскости xy. Мы захотим вращать его свыше 90 градусов вдоль оси x (или оси y). Итак, нам нужно добавить вращение. Запомните порядок: мы должны сначала вращать спрайт, а затем его перевести. Итак, мы можем использовать следующие коды.


{
d3d_transform_set_identity();
d3d_transform_add_rotation_x(90);
d3d_transform_add_translation(100,100,10);
draw_sprite(spr,0,0,0);
d3d_transform_set_identity();
}

гроссмейстер
Группа: Сообщество GM
Сообщений: 223
Добавлено: 29-09-2006 14:25
я это читал и делал по этому примеру. нифига.

гроссмейстер
Группа: Сообщество GM
Сообщений: 223
Добавлено: 30-09-2006 23:22
всё чуваки. спасибо. я понял как делать. я писал х-10, а надо было просто -10.

Страницы: 1  новая тема
Раздел: 
Game Maker Форум / Техника Создания 3D игр / поворот машины в 3д

Отвечать на темы в данном разделе могут только зарегистрированные пользователи

Отвечать на темы могут только зарегистрированные пользователи

KXK.RU