由用户创建的信息 riko
23 August 2016 13:04
Здравствуйте, никак не могу догнать как сделать чтобы при нажатии клавиши к примеру объект (НЕ ПЕРСОНАЖ) а именно объект начинал движение вперед например на 100 едениц, при след нажатии снова на 100 к примеру, посмотрел видео уроки там объясняют про персонажей, для персонажей полно методов модуля physic, а вот для обычных объектов,
вот к примеру функция из видео урока где бегает обезьянка
function setup_movement(){
var key_w = m_ctl.create_keyboard_sensor(m_ctl.KEY_W);
var key_s = m_ctl.create_keyboard_sensor(m_ctl.KEY_S);
var move_array = [
key_w,key_s
];
var forward_logic = function(s){return s[0]};
var backward_logic = function(s){return s[1]};
function move_cb(obj, id, pulse) {
if (pulse == 1) {
switch(id){
case "FORWARD":
var move_dir = 1;
break;
case "BACKWARD":
var move_dir = -1;
break;
}
}else{
var move_dir = 0;
}
m_phy.set_character_move_dir(obj, move_dir, 0);
}
m_ctl.create_sensor_manifold(_character, "FORWARD", m_ctl.CT_TRIGGER,
move_array, forward_logic, move_cb);
m_ctl.create_sensor_manifold(_character, "BACKWARD", m_ctl.CT_TRIGGER,
move_array, backward_logic, move_cb);
}
тут при срабатывании того или иного сенсора вызывается метод
m_phy.set_character_move_dir(obj, move_dir, 0); и двигает либо вперед либо назад персонажа, а как сделать то же самое только для объекта ? например куб
я пытался использовать
move_local
но тут нужен метод update_transform, при этом выдает ошибку что такого нет у модуля transfiorm
вот к примеру функция из видео урока где бегает обезьянка
function setup_movement(){
var key_w = m_ctl.create_keyboard_sensor(m_ctl.KEY_W);
var key_s = m_ctl.create_keyboard_sensor(m_ctl.KEY_S);
var move_array = [
key_w,key_s
];
var forward_logic = function(s){return s[0]};
var backward_logic = function(s){return s[1]};
function move_cb(obj, id, pulse) {
if (pulse == 1) {
switch(id){
case "FORWARD":
var move_dir = 1;
break;
case "BACKWARD":
var move_dir = -1;
break;
}
}else{
var move_dir = 0;
}
m_phy.set_character_move_dir(obj, move_dir, 0);
}
m_ctl.create_sensor_manifold(_character, "FORWARD", m_ctl.CT_TRIGGER,
move_array, forward_logic, move_cb);
m_ctl.create_sensor_manifold(_character, "BACKWARD", m_ctl.CT_TRIGGER,
move_array, backward_logic, move_cb);
}
тут при срабатывании того или иного сенсора вызывается метод
m_phy.set_character_move_dir(obj, move_dir, 0); и двигает либо вперед либо назад персонажа, а как сделать то же самое только для объекта ? например куб
я пытался использовать
move_local
но тут нужен метод update_transform, при этом выдает ошибку что такого нет у модуля transfiorm
16 August 2016 17:29
02 August 2016 16:29
Здравствуйте, у меня есть несколько объектов, созданных в блендере, они все анимированы, сначала получаю все объекты текущей сцены,анимацию добавляю в цикле для каждогого объекта, хочу получить длину анимации каждого объекта
но либо возвращается -1 неправильный объект либо ошибка что anim_slot является undifined
console.log("dlina="+m_anim.get_anim_length(obj));
для чего нужны слоты анимации ? и как их вообще в данной ситуации использовать ?
по сути мне нужно получить длину всех анимций и перейти к примеру по клику на кнопку на 40 кадр и запустить анимацию с 40 кадра для всех объектов, подскажите пожалуйста
но либо возвращается -1 неправильный объект либо ошибка что anim_slot является undifined
console.log("dlina="+m_anim.get_anim_length(obj));
для чего нужны слоты анимации ? и как их вообще в данной ситуации использовать ?
по сути мне нужно получить длину всех анимций и перейти к примеру по клику на кнопку на 40 кадр и запустить анимацию с 40 кадра для всех объектов, подскажите пожалуйста