| 
				
				
					
						
					
				
				
				 | 
			
			 | 
			
			@ -391,16 +391,24 @@ bool CheckCollisionCircles(Vector2 center1, float radius1, Vector2 center2, floa | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			} | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			// Check collision between circle and rectangle | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			// NOTE: Reviewed version to take into account corner limit case | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			bool CheckCollisionCircleRec(Vector2 center, float radius, Rectangle rec) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			{ | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    bool collision = false; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    int recCenterX = rec.x + rec.width/2; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    int recCenterY = rec.y + rec.height/2; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			     | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    float dx = abs(center.x - recCenterX); | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    float dy = abs(center.y - recCenterY); | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    float dx = fabs((rec.x + rec.width/2) - center.x); | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    float dy = fabs((rec.y + rec.height/2) - center.y); | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    ">if (dx > (rec.width/2 + radius)) { return false; } | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    ">if (dy > (rec.height/2 + radius)) { return false; } | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    if ((dx <= (rec.width/2 + radius)) && (dy <= (rec.height/2 + radius))) collision = true; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    if (dx <= (rec.width/2)) { return true; }  | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    if (dy <= (rec.height/2)) { return true; } | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    return collision; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    float cornerDistanceSq = pow(dx - rec.width/2, 2) + pow(dy - rec.height/2, 2); | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    return (cornerDistanceSq <= (radius*radius)); | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			} | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			// Get collision rectangle for two rectangles collision | 
			
		
		
	
	
		
			
				| 
				
					
						
					
				
				
				
				 | 
			
			 | 
			
			
 |