Cocos Creator方向与角度转换

1、让一个对象朝着他的方向移动

cc.Node节点的rotation是一个角度,因此,我们为了实现这个目标,首先要根据rotation求出他的dir方向,就好办了。示例代码:

update(dt){
        //由于Math函数接受的是孤度,所以我们先节节点的旋转转化为弧度
        var angle = this.node.rotation / 180 * Math.PI;
        //合成基于 X正方向的方向向量
        var dir = cc.v2(Math.cos(angle),Math.sin(angle));
        //单位化向量
        dir.normalizeSelf();

        //根据方向向量移动位置
        var moveSpeed = 100;
        this.node.x += dt * dir.x * moveSpeed;
        this.node.y += dt * dir.y * moveSpeed;

}

2、让一个对象朝向另一个对象

通过高中数学我们可以知道, A到B的向量 = B点 - A点。 那我们只需要将目标对象的位置 - 自己的位置,即可得到方向向量。

方向向量转换为角度,需要认清一个隐含变量,就是这个角度的基准是 X 轴正方向。 使用向量来表示就是 (1,0)。

cc.Vec2提供了两个函数 cc.Vec2.angle和cc.Vec2.signAngle, 后者相比前者来说,后者产生的角度是有符号的,而前者会永远为正。 我们使用cc.Vec2.signAngle来将方向向量转换为弧度。 具体操作请看代码。

function lookAtObj(target){
        //计算出朝向
        var dx = target.x - this.node.x;
        var dy = target.y - this.node.y;
        var dir = cc.v2(dx,dy);

        //根据朝向计算出夹角弧度
        var angle = dir.signAngle(cc.v2(1,0));

        //将弧度转换为欧拉角
        var degree = angle / Math.PI * 180;

        //赋值给节点
        this.node.rotation = degree;

}

  • 4
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: cocos creator node 可以通过以下方式设置角度: - 使用 node.angle 属性 - 使用 node.setRotation() 方法 - 使用 node.rotation 属性(以弧度制表示) 例如: ``` node.angle = 30; node.setRotation(45); node.rotation = Math.PI / 2; ``` 其中 angle 属性和 setRotation() 方法都以角度制表示角度,而 rotation 属性则以弧度制表示角度。 ### 回答2: Cocos Creator是一款主要用于游戏开发的跨平台游戏引擎,其内置的场景编辑器可以方便地创建并编辑角色、场景和动画。在使用Cocos Creator进行开发时,我们可以使用Node节点来表示游戏中的角色或物体,并通过设置节点角度来实现旋转效果。 在Cocos Creator中,一个Node节点角度可以通过设置节点的rotation属性来实现,rotation属性是一个表示角度的浮点数,默认以弧度为单位。可以通过以下代码设置一个节点的旋转角度: node.rotation = 45; // 将节点的旋转角度设置为45度 此外,我们还可以通过设置节点的rotation属性来实现平滑的角度变换。可以使用以下代码实现节点的平滑旋转效果: cc.tween(node).to(2, { rotation: 45 }).start(); // 在2秒内将节点从当前角度平滑地旋转到45度 在一些情况下,我们可能希望直接设置节点的旋转角度,而不是在原有角度基础上进行旋转。可以使用以下代码实现直接设置节点的旋转角度: node.rotation = node.rotation + 45; // 将节点的旋转角度增加45度 需要注意的是,节点的旋转角度是相对于父节点的,即如果改变了父节点的旋转角度,子节点的旋转角度也会受到影响。可以使用以下代码设置一个节点相对于父节点的旋转角度: node.eulerAngles = cc.v3(0, 0, 45); // 将节点相对于父节点的旋转角度设置为45度 总之,通过对Cocos Creator Node节点角度设置,我们可以实现游戏中角色和物体的旋转效果,使游戏更加生动和有趣。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值