2016-03-25 6 views
1

Cocos Creator - Ich habe einen Knoten, den ich auf einem anderen Knoten drehen will, hier ist der Code Ich verwende:Drehen Knoten an einem anderen Knoten zu schauen, um

update: function (dt) { 
    this.rotate(); 
}, 

rotate: function() { 
    var diff = this.target.position - this.node.position; 
    var angle = Math.atan2(diff.x, diff.y); 
    this.node.rotation = cc.radiansToDegress(angle); 
}, 

Aber es ist nicht überhaupt zu drehen, ich versucht, die docs zu suchen, konnte aber nichts hilfreich finden.

Antwort

2
var diff = this.target.position - this.node.position; 

Sie versuchen, im Grunde ein Objekt von einem Objekt zu subtrahieren. Überprüfen Sie

{'x':2, 'y':3} - {'x':4, 'y':6} 

in Ihrer JS-Konsole. Das Ergebnis ist NaN Sie müssen jede Dimension manuell subtrahieren.

var diff = { 
'x' : this.target.position.x - this.node.position.x, 
'y':this.target.position.y - this.node.position.y 
}; 
+0

Es funktioniert jetzt, aber etwas falsch mit dem Winkel, es gibt nicht das gewünschte Verhalten. – Abdou023

+0

Math, Atan2 akzeptiert Winkel im Bogenmaß gemessen. Cocos misst die Drehung in Grad. Das ist dein Problem –

+0

Aber ich konvertiere schon Radiant zu Grad, was fehlt mir hier ?! – Abdou023

Verwandte Themen