论坛

由用户创建的信息 shooter
21 January 2016 19:45

Ответ на сообщение пользователя Dragon3DGraff
Посмотрите в уроке, на который я сослался. там прямо картинка есть
Спасибо вам больше! Все таки я не туда смотрел..
21 January 2016 19:43

Просто не выставлено Selectable на кубике)



Это не то самое Selectable?
21 January 2016 19:16
Не выходит
Если Вы посмотрите что я простите за выражение, наговнякал, будет совершенно замечательно.
21 January 2016 19:00
Простите, заменил. Так же нет результата.
Кстати, вот заметил еще ошибку в консоли:
TypeError: b4w.require(…).init is not a function

При том что приложение инициализируется.
21 January 2016 18:53
Обернул, в итоге получилось вот так:
b4w.register("Menu", function(exports, require) {

var m_app       = require("app");
var m_data      = require("data");
var m_scenes    = require("scenes");

m_app.init({
    show_fps: true,
    canvas_container_id: "main_canvas_container",
    callback: init_cb,
    console_verbose: true,
    autoresize: true
})

function init_cb(canvas_elem) {
    m_data.load("cube.json", loaded_cb);

    canvas_elem.addEventListener('mousedown', canvas_click, true);
}

function loaded_cb() {
    m_app.enable_controls();
    m_app.enable_camera_controls();
}

function canvas_click(event) {
    var x = event.clientX;
    var y = event.clientY;
    var object = m_scenes.pick_object(x, y);
    
    console.log({x: x, y: y, object: object});
    console.log(m_scenes.get_object_name(object));
};

});
b4w.require("Menu", "MENU_1").init();

Результатов нет.
А в самой сцене может быть загвоздка? В блендере я нуб полный.
21 January 2016 18:39
Ну собственно
B4W ERROR: Wrong object name

и есть результат попытки вывести имя обьекта. Наверное логично, потому как мы передаем функции get_object_name() параметром null.
См. приложения к посту.
21 January 2016 18:28
Наверное все таки:
var m_obj    = b4w.require("objects");

?
Получил:
Object { x: 768, y: 368, object: null } test.js:31:1
B4W ERROR: Wrong object name

Может быть, обьекту необходимо присвоить имя?
21 January 2016 18:11
Добрый вечер!
Разбираю простой пример работы движка: пытаюсь обработать клик по обьекту.
Проблема в том что при нажатии в любую облать canvas'а, даже по самому обьекту, всегда получаю null.
Мой код:
var m_app = b4w.require('app');
var m_data = b4w.require('data');
var m_scenes = b4w.require('scenes');

m_app.init({
    show_fps: true,
    canvas_container_id: "main_canvas_container",
    callback: init_cb,
    console_verbose: true,
    autoresize: true
})

function init_cb(canvas_elem) {
    m_data.load("cube.json", loaded_cb);

    canvas_elem.addEventListener('mousedown', canvas_click, true);
}

function loaded_cb() {
    m_app.enable_controls();
    m_app.enable_camera_controls();
}

function canvas_click(event) {
    //event.preventDefault();
    
    var x = event.clientX;
    var y = event.clientY;
    var object = m_scenes.pick_object(x, y);
    console.log({x: x, y: y, object: object});
}

Перепроверил, у обьекта заданно свойство selectable. Что можно еще посмотреть?