3d вращение куба с помощью Buildbox 3

Таким образом, проблема заключается в вращении куба с использованием buildbox 3 и узла по умолчанию "touch rotate". В начале он вращается нормально, но если вы поворачиваете его на 180 градусов, он начинает вращаться в противоположном направлении. Ребята, можете ли вы помочь мне решить эту проблему? Я не могу закончить свою игру из-за этого. Специалист службы технической поддержки Buildbox сказал, что он работает, как задумано, но это не может быть правдой... Прикреплены снимок экрана с кодом узла, файл с кодом и видео, иллюстрирующее проблему. Видео с проблемой: https://www.dropbox.com/s/wnre9ss8x7dk7s5/VID_20181027_223043.mp4?dl=0%5D

изображение с кодом: изображение

и фактический код:

var _speed;
var _enabled = false;
var _prev;
var _target 
var _smooth = 1;
var pos;  
//----Standart
function init(){
 this.enableTouch();
 _speed = this.attribute('Speed');
 _smooth = this.attribute('Smooth');
 _target = this.entity().rotation();

}
function update( dt ){
  let ep = this.entity().rotation();
  this.entity().setRotation(_target.x * (1-_smooth) + ep.x*_smooth,
         _target.y * (1-_smooth) + ep.y*_smooth,
         _target.z * (1-_smooth) + ep.z*_smooth
          );
}
function signal( name, value){
 _enabled = value;


}
//----Move
function rotate( point ){
 if(_enabled){
  let delta = new Vec3(point.x-_prev.x, 
      point.y-_prev.y,
      0);
  _target = new Vec3(_target.x+delta.y*_speed.x,
       _target.y+delta.x*_speed.y,
       _target.z+delta.z*_speed.z);
 }
}
component.rotate = rotate; 

//----Touches
function touchBegan( point ){
 _prev = point;
}
component.touchBegan = touchBegan;

function touchMove( point){
 this.rotate( point );
 _prev = point;
 
}
component.touchMove = touchMove;

function touchEnded(){
}
component.touchEnded = touchEnded; 

0 ответов

Другие вопросы по тегам