2016-05-08 15 views
0

Ich mag einen Würfel auf der Weltachse drehen, indem Sie tween.I die Lage ist, den Würfel um Weltachse zu drehen, ohne Tween mit vonDrehen Objekt um Weltachse mit tween.js

rotateAroundWorldAxis(cube[1], new THREE.Vector3(0,1,0),degreeToRadians(90)); 

verwenden, aber ich will das passiert langsam, also möchte ich es mit Tween verwenden.

ich vor

var start = {x:cube[1].rotation.x, y:cube[1].rotation.y, z:cube[1].rotation.z}; 
var end = {x:cube[1].rotation.x , y:cube[1].rotation.y+degreeToRadians(90) , 
      z:cube[1].rotation.z}; 

var tween = new TWEEN.Tween(start) 
    .to(end, 1000) 
    .easing(TWEEN.Easing.Exponential.InOut) 
    .onUpdate(function(){ 
    cube[1].rotation.x = this.x; 
    cube[1].rotation.y = this.y; 
    cube[1].rotation.z = this.z; 
    }) 
.start() 

mit wurde, aber es war das Drehen des Würfels um Objekt axis.So, wechselte ich zu

rotateAroundWorldAxis(cube[1], new THREE.Vector3(0,1,0),degreeToRadians(90)); 

aber wie es mit Tween zu benutzen?

Antwort

0

Sie Tweens können einen allgemeinen Wert von 0 bis 90 und dann in der Aktualisierung der Funktion rotateAroundWorldAxis

var cubeAngle = 0; // use this global variable if you want to rotate more than one time 

in Tween Initialisierung

var start = {angle: cubeAngle}; 
var end = {angle: cubeAngle + 90}; 

in onUpdate

cubeAngle=this.angle;  
rotateAroundWorldAxis(cube[1], new THREE.Vector3(0,1,0),degreeToRadians(cubeAngle)); 
verwenden ändern
+0

Vielen Dank, es hat mein Problem gelöst, nur eine kleine Sache, dass es irgendwie nicht den richtigen Winkel bekommt dreht den Würfel nicht 90 Grad, sondern 4-5 Runden, aber es ist okay, ich werde es selbst herausfinden. Danke nochmal !! –

+0

Ich habe keine Ahnung von Ihrem Problem, aber Sie können versuchen, den CubeAngle vor dem Start von tween zurückzusetzen, wie 'cubeAngle = cubeAngle% 360' und sehen, ob der Freak bestehen bleibt. –