|
[ На главную ] -- [ Список участников ] -- [ Правила форума ] -- [ Зарегистрироваться ] |
On-line: |
Game Maker Форум / Техника Создания 3D игр / поворот машины в 3д |
Страницы: 1 |
Автор | Сообщение |
Crash гроссмейстер Группа: Сообщество GM Сообщений: 223 |
Добавлено: 27-09-2006 01:10 |
у меня машина поворачивает не вокруг своей оси, а вокруг точки х=0 у=0. как сделать так, чтоб машина поворачивалась как при значении direction в 2д? ...машина то кувыркается на месте, то летает вокруг точки с бешенной скоростью... помогите... |
|
Mark мастер Группа: Сообщество GM Сообщений: 100 |
Добавлено: 27-09-2006 08:32 |
Я чё то не понял, чё ты от нас хочешь? Объясни подробнее. |
|
Crash гроссмейстер Группа: Сообщество GM Сообщений: 223 |
Добавлено: 27-09-2006 13:05 |
я хочу сделать поворот модели. d3d_transform_add_rotation_z(angle) |
|
Mark мастер Группа: Сообщество 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(); |
|
Crash гроссмейстер Группа: Сообщество GM Сообщений: 223 |
Добавлено: 28-09-2006 20:33 |
всё равно через точку 0,0 проходит. | |
punker гроссмейстер Группа: Сообщество 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(); } |
|
Crash гроссмейстер Группа: Сообщество GM Сообщений: 223 |
Добавлено: 29-09-2006 14:25 |
я это читал и делал по этому примеру. нифига. | |
Crash гроссмейстер Группа: Сообщество GM Сообщений: 223 |
Добавлено: 30-09-2006 23:22 |
всё чуваки. спасибо. я понял как делать. я писал х-10, а надо было просто -10. |
Страницы: 1 |
Game Maker Форум / Техника Создания 3D игр / поворот машины в 3д |