Вопросы по API

30 апреля 2015 17:04 #2224
		function load() {
m_data.load("cube_test.json", load_cb);
}

function load_cb(data_id) {
m_app.enable_controls();
m_app.enable_camera_controls();
set_stack_material_params();
}

function set_stack_material_params() {
var cube_diffuse_color = m_scenes.get_object_by_name("Cube_diffuse_color");
m_mat.set_diffuse_color(cube_diffuse_color, "mat_diffuse_color", [255,245,250]);
}


Проект загружается, а конструкция не работает.
Пример взял из сниппетов по Вашему научению.
Коплю деньги на коммерческий B4W.
30 апреля 2015 17:10 #2225

Проект загружается, а конструкция не работает.
Я не сказал сразу, что для того, чтобы этот функционал был доступен для объекта, надо выставить галочку "Force Dynamic Object".
Подозреваю, что если сейчас нажать F12 в браузере, то в консоле будет сообщение, говорящее о том, что объект не динамический.
Разработчик Blend4Web
30 апреля 2015 17:22 #2226

Я не сказал сразу, что для того, чтобы этот функционал был доступен для объекта, надо выставить галочку "Force Dynamic Object".
Подозреваю, что если сейчас нажать F12 в браузере, то в консоле будет сообщение, говорящее о том, что объект не динамический.

Спасибо! Помогло за 2 секунды. А со страницы каким образом к данной функции обращаться?
Реализую onclick="change_color(rgb)". Дебаговый алерт вылетает, но в b4w не передается. ( в той же функции прописал m_mat.set_diffuse_color(cube_diffuse_color, "mat_diffuse_color", [r,g,b]);
Коплю деньги на коммерческий B4W.
30 апреля 2015 17:27 #2227
Я не работаю напрямую в SDK. Я старовер- блокнотом пользуюсь с двумя плюсами
Коплю деньги на коммерческий B4W.
30 апреля 2015 17:33 #2228

onclick="change_color(rgb)"

Не могли бы вы подробнее описать, что именно вы делаете?

Мне показалось, что вы пытаетесь на html-элементе навесить обработчик события на нажатие мышью. Если да, то в функцию обработчик передается событие, а не переменная rgb. Попробуйте написать не alert, a console.log(rgb) и посмотреть в консоле, что передается в функцию.
Разработчик Blend4Web
30 апреля 2015 17:49 #2229
Смысл такой: по клику на html элемент вызывается функция, ей передаётся параметр (конкретно код цвета). Функцией обрабатывается передаваемый параметр, о чем я сам себе оповещаю через алерт.
Моя задача той же функцией передать цвет диффузному кубу.
Коплю деньги на коммерческий B4W.
30 апреля 2015 18:10 #2230
Сверху слева цифра 1. нажать на нее - цвет сменится
example_16.zip

Такой функционал нужен?
Разработчик Blend4Web
30 апреля 2015 18:22 #2232
Я пытаюсь кликнув на html-элемент, вызвать функцию с параметром 'код цвета' и этой же функцией сделать m_mat.set_diffuse_color(cube_diffuse_color, "mat_diffuse_color", [r,g,b]);
Вот))) Пока не получается извне. Получается только из b4w.example_main(); при загрузке сцены установить некий свой цвет.
Коплю деньги на коммерческий B4W.
30 апреля 2015 18:39 #2234
Да, спасибо. Понял. Не оттуда клик слушаю)))
Коплю деньги на коммерческий B4W.
01 мая 2015 00:59 #2238
И снова здравствуйте! У меня вот вопрос…

Как мне определить с каким объектом произошло столкновение?
С какой силой произошло столкновение?
Где произошло столкновение?
На данный момент напридумывал такое:
    var sensor_col = m_ctl.create_collision_impulse_sensor(pula_new);
    var sensors = [sensor_col];
    
    var logic_func = function(s) {
        if (s[0] > 0)
            return 1;
        else
            return 0;
    }

    function trigger_pula(obj, id, pulse) {
        console.log({obj:obj,id:id,pulse:pulse});
    }

    m_ctl.create_sensor_manifold(pula_new, "COLLISION", m_ctl.CT_TRIGGER, sensors,
        logic_func, trigger_pula);

Консоль пишет obj:объект, который столкнулся, id:"COLLISION", pulse: 1 или -1.

UPD: с силой столкновения разобрался, она находится в массиве s нулевым элементом метода logic_func
UPD2: создал отдельную тему по этому вопросу
Не стой, где попало… Попадет еще раз.
http://naviris.ru/
 
Пожалуйста, зарегистрируйтесь или войдите под своей учетной записью , чтобы оставлять сообщения.