Normalizing the direction to check if able to move
- by spartan2417
i have a a room with 4 walls along the x and z axis respectively. My player who is in first person (therefore the camera) should have collision detection with these walls. I'm relatively new to this so please bare with me. I believe the way to do this is to calculate the direction and distance to the wall from the camera and then normalize the directions. However i can only get this far before i dont know what to do. I think you should work out the angle and direction your facing?
where _dx and _dz is the small buffer in front of the camera.
float CalcDirection(float Cam_x, float Cam_z, float Wall_x, float Wall_z)
{
//Calculate direction and distance to obstacle.
float ob_dirx = Cam_x + _dx - Wall_x;
float ob_dirz = Cam_z + _dz - Wall_z;
float ob_dist = sqrt(ob_dirx*ob_dirx + ob_dirz*ob_dirz);
//Normalise directions
float ob_norm = sqrt(ob_dirx*ob_dirx + ob_dirz*ob_dirz);
ob_dirx = (ob_dirx)/ob_norm;
ob_dirz = (ob_dirz)/ob_norm;
can anyone explain in laymen's terms how i work out the angle?