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;