User posts crantisz
19 October 2017 14:20
09 October 2017 10:56
09 October 2017 10:47
Я считаю, правильный подход - это админка на сервере, с которой работает далекий от технологий человек. Админка, например, на PHP, данные хранит в базе данных. При изменении данных через админку обновляет специальный JSON файл с данными, или же генерирует его "на лету" при обращении из b4w к скрипту на сервере. Ну а загрузить его легко и просто, например, с помощью библиотеки jQuery:
$.getJSON( PATH_TO_FILE + "data.json", function( data ) {
//выполняем необходимые действия после загрузки файла
//data - объект полученный из json-файла, уже распарсенный
});
06 October 2017 11:21
Допустим, нужно заменить текстуру на меше. Я могу дождаться его загрузки, и в колбеке после загрузки заменить текстуру:
Но таким образом выходит, что сначала грузится основная текстура, потом вторая, которая ее заменяет. Получается лишняя загрузка. Можно это как-то обойти?
function loaded_cb(data_id) {
var obj = m_scenes.get_object_by_name('objectname', data_id);
m_tex.change_image(obj, "texturename", TEX_ASSETS_PATH + customtextureadress );
}
Но таким образом выходит, что сначала грузится основная текстура, потом вторая, которая ее заменяет. Получается лишняя загрузка. Можно это как-то обойти?
28 September 2017 12:04
Есть следующий код (упрощенно):
Проблема в том, что canvas не успевает обновиться после поворота. Как сделать колбек на обновление кадра? Т.е. запустить .toDataURL(); уже после того, как новый кадр прорисован?
var cam_obj = m_scenes.get_active_camera();
m_cam.rotate_camera(cam_obj, 0, 0, true);
var dataURL = $('#main_canvas_container canvas')[0].toDataURL(); //получаем содержимое canvas.
Проблема в том, что canvas не успевает обновиться после поворота. Как сделать колбек на обновление кадра? Т.е. запустить .toDataURL(); уже после того, как новый кадр прорисован?
14 September 2017 16:38
Нашел в чем проблема. Изучил исходники, и нашел, что камера перемещается с помощью transform_vec3, а эта функция учитывает масштаб объекта. Оказывается, камера была отмасштабирована. Причем blender не применяет масштаб на Alt+A у камер и источников света, поэтому я даже не догадывался об этом!
11 September 2017 11:48
Нет, так не работает, Canvas же на месте
Ответ на сообщение пользователя Иван Любовников
должно помочь так:var x = m_mouse.get_coords_x(e, false, true); var y = m_mouse.get_coords_y(e, false, true); var obj = m_scenes.pick_object(x, y); if (obj){ console.log('click!') }
подробности тут: ссылка
11 September 2017 09:58