1. 起点A(0,0) 终点B(100,100),特别注意
var angle = Math.atan2((this.B.y - this.A.y), (this.B.x - this.A.x));
angle如果是正,顺时针旋转,B点减去A点,一定是一个正值,所以顺时针旋转,但是在cocos中一般要的是逆时针旋转,所以前面需要添加一个负号来实现逆时针旋转
var angle = Math.atan2((this.A.y - this.B.y), (this.A.x - this.B.x));
angle如果是负,逆时针旋转,A点减去B点,一定是一个负值,所以逆时针旋转。这个就刚刚好。cocos中一般要的是逆时针旋转
2. 让一个对象朝向另一个对象 旋转角度一
cc.Class({
extends: cc.Component,
properties: {
target:{
default: null,
type:cc.Node
},
},
start () {
let angle = this.getAngle();
this.node.rotation = angle;
},
getAngle() {
//第一种方法,用目标点减去起点,得出angle如果是正,顺时针旋转,但是在cocos中一般要的是逆时针旋转,所以前面需要添加一个负号来实现逆时针旋转
var angle = -Math.atan2((this.target.y - this.node.y), (this.target.x - this.node.x));
//第二种方法,用起点减去目标点,一定是一个负值,所以逆时针旋转。这个就刚刚好。cocos中一般要的是逆时针旋转
var angle = Math.atan2((this.node.y - this.target.y), (this.node.x - this.target.x));
var theta = angle * (180 / Math.PI);
return theta;
},
});
2.让一个对象朝向另一个对象 旋转角度方法二
getAngle() {

本文详细介绍了在Cocos2d-x中如何让一个对象朝向另一个对象,包括通过atan2函数计算角度,利用向量计算方向,并实现基于旋转角度的对象移动。同时,探讨了顺时针与逆时针旋转的区别及其在Cocos2d-x中的应用。

1285

被折叠的 条评论
为什么被折叠?



