gale.physics.shapes module

This file contains the implementation of the classes CircleShape, BoxShape, and PolygonShape: plain descriptors for a Body’s fixtures. None of them ever touch Box2D directly — Body translates them into Box2D fixtures, in pixel units converted to meters internally.

Author: Alejandro Mujica (aledrums@gmail.com)

class gale.physics.shapes.CircleShape(radius, density=1.0, friction=0.3, restitution=0.0, is_sensor=False, offset=(0, 0))[source]

Bases: object

A circular fixture.

Usage example:

body.add_circle(CircleShape(radius=8, friction=0.4, restitution=0.6))

Parameters:
  • radius (float)

  • density (float)

  • friction (float)

  • restitution (float)

  • is_sensor (bool)

  • offset (Tuple[float, float])

class gale.physics.shapes.BoxShape(width, height, density=1.0, friction=0.3, restitution=0.0, is_sensor=False, offset=(0, 0))[source]

Bases: object

A rectangular fixture.

Usage example:

body.add_box(BoxShape(width=32, height=32))

Parameters:
  • width (float)

  • height (float)

  • density (float)

  • friction (float)

  • restitution (float)

  • is_sensor (bool)

  • offset (Tuple[float, float])

class gale.physics.shapes.PolygonShape(points, density=1.0, friction=0.3, restitution=0.0, is_sensor=False)[source]

Bases: object

An arbitrary convex polygon fixture (at most 8 vertices, Box2D’s own limit).

Usage example:

body.add_polygon(PolygonShape([(0, -10), (10, 10), (-10, 10)]))

Parameters:
  • points (List[Tuple[float, float]])

  • density (float)

  • friction (float)

  • restitution (float)

  • is_sensor (bool)