cocos 获取物理碰撞瞄准线和两个向量的夹角

本文介绍了一个游戏场景中实现物理碰撞检测的方法,包括如何通过射线检测来获取碰撞点及其法线,并利用这些信息来计算碰撞角度及显示碰撞线。此外还提供了一种计算两个向量间夹角的实用函数。
/**
     * 获取小球碰撞瞄准线和预碰撞点
     * @param {*} cha_location 
     * @param {*} get_location 
     */
    rayTest (cha_location, get_location) {
        // 获取落地的世界坐标
        var louDi = this.layer_game.parent.convertToWorldSpaceAR(this.hero_luoDi_location);
        
        // 放大 物理碰撞点的瞄准线
        var zz = cc.v2(get_location.x - louDi.x, get_location.y - louDi.y);
        get_location.x = get_location.x + zz.x * this.speed;
        get_location.y = get_location.y + zz.y * this.speed;
        
        
        // 获取两个点直接的路径会碰撞到的物理组件以及碰撞点、法线
        // 这里的坐标必须是世界坐标
        var results = cc.director.getPhysicsManager().rayCast(louDi, get_location, cc.RayCastType.AllClosest);
        var luJin = 100000;
        var pointResult = null;
        // console.log('rayTest', results)
        for (var i = 0; i < results.length; i++) {
            //两点之间检测出来的点的数组
            var result = results[i];
            if(result.collider.node._name == 'block_12') {
   
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值