旋转节点以查看另一个节点
Rotate node to look at another node
Cocos Creator - 我有一个节点,我想旋转到另一个节点,这是我正在使用的代码:
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);
},
但它根本不旋转,我试图搜索 docs 但找不到任何有用的东西。
var diff = this.target.position - this.node.position;
您基本上是在尝试从一个对象中减去一个对象。检查
{'x':2, 'y':3} - {'x':4, 'y':6}
在您的 JS 控制台中。结果是NaN
您需要手动减去每个维度。
var diff = {
'x' : this.target.position.x - this.node.position.x,
'y':this.target.position.y - this.node.position.y
};
对这个问题表示歉意,但由于这是一个热门搜索结果,我只想补充一点,这里的问题是 Math.atan2
的签名将它的坐标向后:
语法:
Math.atan2(y, x)
来源: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/atan2
Cocos Creator - 我有一个节点,我想旋转到另一个节点,这是我正在使用的代码:
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);
},
但它根本不旋转,我试图搜索 docs 但找不到任何有用的东西。
var diff = this.target.position - this.node.position;
您基本上是在尝试从一个对象中减去一个对象。检查
{'x':2, 'y':3} - {'x':4, 'y':6}
在您的 JS 控制台中。结果是NaN
您需要手动减去每个维度。
var diff = {
'x' : this.target.position.x - this.node.position.x,
'y':this.target.position.y - this.node.position.y
};
对这个问题表示歉意,但由于这是一个热门搜索结果,我只想补充一点,这里的问题是 Math.atan2
的签名将它的坐标向后:
语法:
Math.atan2(y, x)
来源: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/atan2