code: def collides(self, other):
          
  
          angle = self.angle
          width = self.width
          height = self.height
  
          if angle == 0:
              return other.collides(Rect(-0.5 * width,
                                         -0.5 * height, width, height))
  
          # Phase 1
          #
          #  * Form bounding box on tilted rectangle P.
          #  * Check whether bounding box and other intersect.
          #  * If not, then self and other do not intersect.
          #  * Otherwise proceed to Phase 2.
  
          # Now perform the standard rectangle intersection test.
  
          if self.is_bbox_not_intersecting(other):
              return False
  
          # Phase 2
          #
          # If we get here, check the edges of self to see
          #  * if one of them excludes all vertices of other.
          #  * If so, then self and other do not intersect.
          #  * (If not, then self and other do intersect.)
  
          return not self.is_edge_not_excluding_vertices(other)
docs: Returns collision with axis aligned rect