CocosCreator 旋转角度问题1

需求: 已知两坐标点, 求角度并旋转.

 如下图所示, 简单介绍下, start1为起始点, start2为目标点, point为要旋转的对象.  下面代码中的temp字段为 start1与 start2两点组成的向量与水平向量的形成的夹角.  旋转方向默认按顺时针为正,逆时针为负.

 

const {ccclass, property} = cc._decorator;

@ccclass
export default class JiaJiao extends cc.Component {

    @property(cc.Node)
    ball1:cc.Node = null;
    @property(cc.Node)
    ball2:cc.Node = null;
    @property(cc.Node)
    ball3:cc.Node = null;

    // LIFE-CYCLE CALLBACKS:

    // onLoad () {}

    start () {

        let angle = this.calculateAngle(this.ball1.position, this.ball2.position);
        this.ball3.rotation = angle;
    }

    // update (dt) {}

    calculateAngle(first:cc.Vec2, second:cc.Vec2)
    {
        let len_y = second.y - first.y;
        let len_x = second.x - first.x;
        let tan_yx = Math.abs(len_y / len_x);
        let temp = Math.atan(tan_yx) * 180/Math.PI;
        let angle = 0;
        if(len_y > 0 && len_x < 0){
            angle = temp - 90;
        }
        else if(len_y > 0 && len_x > 0){
            angle = -temp + 90;
        }
        else if(len_y < 0 && len_x < 0){
            angle = -temp - 90;
        }
        else if(len_y < 0 && len_x > 0){
            angle = temp + 90;
        }
        else if(len_y == 0 && len_x != 0){
            angle = len_x < 0 ? -90 : 90;
        }
        else if(len_x == 0 && len_y != 0){
            angle = len_y < 0 ? 180 : 0;
        }
        console.log('Temp', temp);
        console.log('Angle ', angle)
        return angle;
    }
}

 

已标记关键词 清除标记
课程目标: 掌握Cocos Creator游戏开发的基本过程,能独立完成游戏项目的设计与开发。适用人群希望学习和了解手机游戏、H5游戏、网络游戏的初学者。想要开发自己的一款小游戏,并且部署到服务器上。 注意:本项目是客户端开发,后续会推出服务端开发的课程。如果大家对课里面的内容有疑问,可以在评论区留言。 为什么选择cocos creater:  Cocos Creator 目前支持发布游戏到 Web、iOS、Android、各类"小游戏"、PC 客户端等平台,真正实现一次开发,全平台运行。其编辑器 完全为引擎定制打造,包含从设计、开发、预览、调试到发布的整个工作流所需的全功能一体化编辑器。很方便。门槛低,学习成本低。 为什么强烈建议推荐本套课程:   1.从0开始一点点敲的代码,由浅入深,深入剖析   2.生产环境Linux部署,减少弯路,一步到位   3. 老师每天上线答疑,让同学少走弯路   4. 实战商业化项目,学习价值很高 项目开发的功能: 本项目具有一定商业化价值。学习本项目我们将开发如下功能: 1.客户端-注册功能,token登录功能 2.客户端大厅功能,包含高分场,低分场 3.客户端好友功能,邮件列表功能,金币转换,排行榜功能 4.小三元动画,小满贯动画,跳远动画,普通开奖动画,旋转动画等 5.Nginx+阿里云部署,H5打包,域名申请 6.客户端http和websocket与后台通信,心跳协议 游戏项目部分截图展示: 后台展示:(本课程只介绍客户端,后续会推出服务端的课程,使用python开发) 免责声明: 素材均是网络搜集,本项目仅用于教学,请勿商用。
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页