采用的是左下角为原点.
//左上(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(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; }新闻热点
疑难解答