由用户创建的信息 Ivan Lyubovnikov
04 August 2016 18:44
02 August 2016 11:56
После выполнения команды resume() обновление картинки происходит не моментально, а только после наступления по таймингу обновления следующего кадра. Наверное из за этого вы и видите предыдущий кадр.
так и есть, собственно, вот строчки, где это происходит:
main.js
в случае ограничения в 1фпс шкала времени будет разбита на интервалы длиной в 1 сек; в том условии проверяется delta - время прошедшее с предыдущей отметки, момент resume попадает в произвольное место этого интервала и задержка может доходить до целой секунды, как повезет
отелось бы без костыликофф ((( обойтись тем более что разработчики тут где то есть, надеюсь услышат и ответятсейчас вряд ли, ограничение фпс использовалось только для отладки, поэтому оно непроработанное; в будущем, думаю, перепишем это место
Костыль с выставлением >60 фпс должен нормально сработать.
02 August 2016 10:47
В общем я заметил, что при установки паузы, метод, повешенный с помощью append_loop_cb() продолжает выполняться, что наверное не очень логично, и меня удивилоа вот не надо удивляться:
Append a callback to be executed every frame (even if the rendering is paused). Its purpose is to perform actions non-related to the actual rendering, e.g html/css manipulation. This method allows registration of multiple callbacks.append_loop_cb
есть ещё render_callback, с ним работают методы set_render_callback и clear_render_callback, на него как раз пауза и будет действовать как нужно
Однако ещё заметил, что если вкладка не активна, то append_loop_cb() останавливается… Чувствую, где то в коде есть ещё одна пауза, которая отключает и append_loop_cb()остановку делает сам браузер
01 August 2016 17:28
Hi, splinter86.
Although we didn't reproduce this issue, we figured out what's wrong with the game. We found a bug related to the engine loader, which can show up when the logic nodes are used. Sometimes (especially for a slow internet connection) this breaks the whole application.
Thank you for the feedback, we will make a fix prior to the next release.
Although we didn't reproduce this issue, we figured out what's wrong with the game. We found a bug related to the engine loader, which can show up when the logic nodes are used. Sometimes (especially for a slow internet connection) this breaks the whole application.
Thank you for the feedback, we will make a fix prior to the next release.
My new game will have these kind of problem in the start process?Maybe… if you'll use the logic nodes, but the coming fix should remove the problem.
29 July 2016 18:29
пробую, но пока безрезультатно вроде как не заходит в процедуру почему то… может быть так, что такое событие не поддерживается?проблема, определенно, в той ошибке
29 July 2016 18:27
"B4W ERROR: device hasn't param: 130"видимо, в апишном методе attach_param_cb не проходит проверка:
exports.attach_param_cb = function(device, param, cb) {
if (device && device.type in ASYNC_PARAMS &&
ASYNC_PARAMS[device.type].indexOf(param) >= 0)
return m_input.attach_param_cb(device, param, cb);
else
m_print.error("device hasn't param: ", param);
}
device должен быть валидный и иметь тип m_input.DEVICE_GYRO
28 July 2016 11:23
а вот зачем тогда в JSON файле ссылка на блендер файлон нужен только для вывода в некоторых собщениях об ошибке, чтобы сразу можно было понять, какой файл нужно пофиксить или переэкспортировать, например:
B4W WARN: Property "diffuse_fresnel" is undefined for "material". To fix this, reexport ../../../blender/misc/logo.blend
27 July 2016 10:45
что то не пойму , а что будет ДОМ элементом ?да, get_device_by_type - опечатка, должно быть get_device_by_type_element;
т.к. - "TypeError: m_input.get_device_by_type is not a function"
АПИ : "get_device_by_type_element(type, element)"
вообще, это элемент, на котором должны отслеживаться события, для гироскопа это не актуально, поэтому не нужно ничего подавать; в документации, правда, это не отражено - поправим
а вот тут может етсь где пример использования с углами?код будет такой:
а чточто то не пойму сразу как подобраться к резульатту ((
var gyro_device = m_input.get_device_by_type_element(m_input.DEVICE_GYRO);
m_input.attach_param_cb(gyro_device, m_input.GYRO_ORIENTATION_ANGLES, function(angles) {
var alpha = angles[0];
var beta = angles[1];
var gamma = angles[2];
})
углы альфа, бета, гамма из стандарта:
DeviceOrientation Event Specification
25 July 2016 17:25
про ТАРГЕТ у спота не понятно по какой причине его нет.. по идее он и в блендре и в других редакторах всегда присутсвуетв блендере у лампочки есть поворот, как и у любого другого объекта - он уже определяет направление конуса света, поэтому таргет в качестве свойства лампы был бы избыточен
если вы о констрейнтах, например, Track To, то он у нас не поддерживается
var gyro_device = m_input.get_device_by_type(m_input.DEVICE_GYRO)- этот вариант даже, наверное, попроще будет, чем через сенсоры, можно ещё m_input.GYRO_ORIENTATION_QUAT заменить на m_input.GYRO_ORIENTATION_ANGLES, тогда в обработчик будут приходить эйлеровские углы, смотря, что удобнее
m_input.attach_param_cb(gyro_device, m_input.GYRO_ORIENTATION_QUAT, function(quat) {
// где quat – актуальный кватернион поворота, который пришёл с гироскопа
// пишем здесь логику перемещения лампочки, см. ниже
})