二微矩阵碰撞检测

本文介绍了一种使用Vector4表示矩形区域的碰撞检测算法。该算法通过比较两个矩形的位置来判断它们是否发生碰撞,并能进一步确定碰撞的具体方向。文章详细展示了碰撞检测函数的实现逻辑。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

   采用的是左下角为原点. 

   //左上(x,y) 右下(z,w).返回val2和val1是否发生碰撞,如果碰撞返回val2相对val1的位置 1上 2下 4右 8左.

    int test(Vector4 val1, Vector4 val2)

    {
        bool ret = true;
//        if(val2.x > val1.x && val2.x > val1.z)
//            ret = false;
//        else if(val1.x > val2.x && val1.x > val2.z)
//            ret = false;
//        else if(val1.w > val2.y && val1.w > val2.w)
//            ret = false;
//        else if(val2.w > val1.y && val2.w > val1.w)
//            ret = false;

        if(val2.x > val1.z)
            ret = false;
        else if(val1.x > val2.z)
            ret = false;
        else if(val1.w > val2.y)
            ret = false;
        else if(val2.w > val1.y)
            ret = false;


        if(ret)
        {
            byte ii = 0;
            if(val2.y > val1.y)
                ii |= 1;
            if(val2.w < val1.w)
                ii |= 2;
            if(val2.z > val1.z)
                ii |= 4;
            if(val2.x < val1.x)
                ii |= 8;
            return ii;
        }
        else
            return -1;
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值