采用的是左下角为原点.
//左上(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;
}