Форум

Перемещение объектов при помощи модуля transform

03 июня 2015 15:24
Доброго времени суток, уважаемая команда Blend4Web!

Я столкнулся с трудностью, очень надеюсь на вашу поддержку.
Есть сцена, вид от первого лица.
На сцене есть 2 объекта: персонаж (character) и кубик (cube).

Я настроил сенсоры коллизий и теперь при соприкосновении персонажа с кубиком вызывается callback. Моя задача - изменить координаты персонажа, после столкновения с кубиком, т.е. немного его передвинуть.
Я делаю так:

var char_coord = m_trans.get_translation(character);
char_coord[2] = char_coord[2] + 0.5;
m_trans.set_translation_v(character, char_coord);


и к сожалению моему, персонаж не двигается с места.. Если же сделать наоборот и попробовать передвинуть кубик, то все получается и он перемещается:

var cube_coord = m_trans.get_translation(cube);
cube_coord[2] = cube_coord[2] + 0.5;
m_trans.set_translation_v(cube, cube_coord);


Персонаж у меня разумеется объект динамический. Подскажите пожалуйста, что я делаю не так. Спасибо!
http://born2fish.ru - секреты рыбной ловли
03 июня 2015 16:02
Дело в том, что физический движок за счёт постоянно происходящей симуляции с динамическими объектами переопределяет трансформации, которые вы ему пытаетесь сообщить с помощью API.
Если вы вопреки тому, что происходит в физическом потоке, все-равно хотите переместить динамический объект (Dynamic либо Rigid Body), вам нужно это делать с помощью методов модуля physics set_transform().
03 июня 2015 16:11
Спасибо вам! Вы святой. Все работает.
http://born2fish.ru - секреты рыбной ловли
16 октября 2015 15:05
Добрый день, уважаемая команда blend4web!
С недавних пор, я так понимаю, после обновления версии движка метод set_transform модуля физики перестал менять координаты объекта. =(
Подскажите пожалуйста - каким образом можно изменить координаты объекта с типом Character, Dynamic?
Спасибо!
http://born2fish.ru - секреты рыбной ловли
16 октября 2015 17:34
Ответ на сообщение пользователя Shaman
Добрый день, уважаемая команда blend4web!
С недавних пор, я так понимаю, после обновления версии движка метод set_transform модуля физики перестал менять координаты объекта. =(
Подскажите пожалуйста - каким образом можно изменить координаты объекта с типом Character, Dynamic?
Спасибо!
Добрый день!

Поведение этой функции никак не менялось последние несколько месяцев. Проверил сейчас работоспособность. Ошибок не обнаружил. Возможно есть какой-нибудь пример?
 
Пожалуйста, зарегистрируйтесь или войдите под своей учетной записью , чтобы оставлять сообщения.