



int CCollisionDetect:ointSphere(float X1, float Y1, float Z1, float X2, float Y2, float Z2, float R2){ if ((float) sqrt((X1-X2)*(X1-X2) + (Y1-Y2)*(Y1-Y2) + (Z1-Z2)*(Z1-Z2)) > R2) {return 0;} return 1;}int CCollisionDetect:ointBox( float X1, float Y1, float Z1, float X2, float Y2, float Z2, float W2, float D2, float H2){ if (X1 > X2 + (float)(W2/2)) {return 0;} if (X1 < X2 - (float)(W2/2)) {return 0;} if (Y1 > Y2 + (float)(D2/2)) {return 0;} if (Y1 < Y2 - (float)(D2/2)) {return 0;} if (Z1 > Z2 + (float)(H2/2)) {return 0;} if (Z1 < Z2 - (float)(H2/2)) {return 0;} return 1;}int CCollisionDetect::SphereSphere( float X1, float Y1, float Z1, float R1, float X2, float Y2, float Z2, float R2){ return PointSphere(X1,Y1,Z1,X2,Y2,Z2,(R1+R2));}//box2 shouldn''t fit in box1!int CCollisionDetect::BoxBox( float X1, float Y1, float Z1, float W1, float D1, float H1, float X2, float Y2, float Z2, float W2, float D2, float H2){ if (PointBox(X1+(float)(W1/2), Y1+(float)(D1/2), Z1+(float)(H1/2), X2, Y2, Z2, W2, D2, H2)) {return 1;} if (PointBox(X1-(float)(W1/2), Y1-(float)(D1/2), Z1-(float)(H1/2), X2, Y2, Z2, W2, D2, H2)) {return 1;} if (PointBox(X1-(float)(W1/2), Y1+(float)(D1/2), Z1+(float)(H1/2), X2, Y2, Z2, W2, D2, H2)) {return 1;} if (PointBox(X1+(float)(W1/2), Y1-(float)(D1/2), Z1+(float)(H1/2), X2, Y2, Z2, W2, D2, H2)) {return 1;} if (PointBox(X1+(float)(W1/2), Y1+(float)(D1/2), Z1-(float)(H1/2), X2, Y2, Z2, W2, D2, H2)) {return 1;} if (PointBox(X1-(float)(W1/2), Y1-(float)(D1/2), Z1+(float)(H1/2), X2, Y2, Z2, W2, D2, H2)) {return 1;} if (PointBox(X1+(float)(W1/2), Y1-(float)(D1/2), Z1-(float)(H1/2), X2, Y2, Z2, W2, D2, H2)) {return 1;} if (PointBox(X1-(float)(W1/2), Y1+(float)(D1/2), Z1-(float)(H1/2), X2, Y2, Z2, W2, D2, H2)) {return 1;} return(0);}//sphere shouldn''t fit in box!int CCollisionDetect::SphereBox( float X1, float Y1, float Z1, float R1, float X2, float Y2, float Z2, float W2, float D2, float H2){ if (PointSphere( X2+(float)(W2/2), Y2+(float)(D2/2), Z2+(float)(H2/2), X1, Y1, Z1, R1)) {return 1;} if (PointSphere( X2-(float)(W2/2), Y2-(float)(D2/2), Z2-(float)(H2/2), X1, Y1, Z1, R1)) {return 1;} if (PointSphere( X2-(float)(W2/2), Y2+(float)(D2/2), Z2+(float)(H2/2), X1, Y1, Z1, R1)) {return 1;} if (PointSphere( X2+(float)(W2/2), Y2-(float)(D2/2), Z2+(float)(H2/2), X1, Y1, Z1, R1)) {return 1;} if (PointSphere( X2+(float)(W2/2), Y2+(float)(D2/2), Z2-(float)(H2/2), X1, Y1, Z1, R1)) {return 1;} if (PointSphere( X2-(float)(W2/2), Y2-(float)(D2/2), Z2+(float)(H2/2), X1, Y1, Z1, R1)) {return 1;} if (PointSphere( X2+(float)(W2/2), Y2-(float)(D2/2), Z2-(float)(H2/2), X1, Y1, Z1, R1)) {return 1;} if (PointSphere( X2-(float)(W2/2), Y2+(float)(D2/2), Z2-(float)(H2/2), X1, Y1, Z1, R1)) {return 1;} return(0);}
Previously "Krohm"
quote:
Original post by Krohm
The point is, simply put, have you thought at what you shall do after a collision has been detected? I currently have but I didn''t find a good response so I would like to know other ppl''s ideas.
Thank you!
--------- /|* / | *( ) | * * *