|
retroPy's glitchi

▫️ RetroPy Rect Module Documentation (MicroPython)

The Rect module defines a rectangle class used for spatial reasoning, collision detection, and GUI layout in RetroPy.


📦 Class: Rect

🔧 Constructor

Rect(x, y, width, height)

Creates a rectangle with floating point coordinates.


🧮 Collision Methods

  • collide_point(x, y): Check if a point is inside the rectangle.
  • collide_rect(other): Check if two rectangles overlap.
  • collide_circle(cx, cy, r): Check if a circle overlaps the rect.
  • collide_line(x0, y0, x1, y1): Line intersects with rect (fast).
  • collide_line_v2(...): Returns clipped line if intersects.

📐 Geometry & Query

  • contains(other_rect): Check if this rect contains another.
  • union(other): Returns the union of two rectangles.
  • touching_sides(other): Returns bitmask of touching edges.
  • touching_sides_names(other): Returns names of touching sides.
  • sides_to_names(mask): Convert bitmask to side names.

🔍 Attributes

Attribute Description
x, y Top-left corner
width, height Dimensions
size (width, height)
center Center point
topleft, topright, bottomleft, bottomright Corners
midtop, midbottom, midleft, midright Edge midpoints

📄 String Representation

print(r)
# Output: Rect(x.xx, y.yy, w.ww, h.hh)

📌 Constants

SIDE_NONE = 0
SIDE_TOP = 1
SIDE_BOTTOM = 2
SIDE_LEFT = 4
SIDE_RIGHT = 8