pymunk.pygame_util
Module¶
This submodule contains helper functions to help with quick prototyping using pymunk together with pygame.
Intended to help with debugging and prototyping, not for actual production use in a full application. The methods contained in this module is opinionated about your coordinate system and not in any way optimized.
-
class
pymunk.pygame_util.
DrawOptions
(surface)[source]¶ Bases:
pymunk.space_debug_draw_options.SpaceDebugDrawOptions
-
DRAW_COLLISION_POINTS
¶ alias of
CP_SPACE_DEBUG_DRAW_COLLISION_POINTS
-
DRAW_CONSTRAINTS
¶ alias of
CP_SPACE_DEBUG_DRAW_CONSTRAINTS
-
DRAW_SHAPES
¶ alias of
CP_SPACE_DEBUG_DRAW_SHAPES
-
__init__
(surface)[source]¶ Draw a pymunk.Space on a pygame.Surface object.
Typical usage:
>>> import pymunk >>> import pymunk.pygame_util >>> surface = pygame.Surface((10,10)) >>> s = pymunk.Space() >>> options = pymunk.pygame_util.DrawOptions(surface) >>> s.debug_draw(options)
Since pygame uses a coordinate system where y points down (compared to most other cases where a positive y points upwards), we might want to make adjustments for that with the
positive_y_is_up
variable.By default drawing is done with positive y pointing up, but that will make conversion from pygame coordinate to pymunk coordinate nessecary. If you do a lot of those (for example, lots of mouse input) it might be more convenient to set it to False:
>>> positive_y_is_up = False >>> # Draw verything the pygame way, (0,0) in the top left corner >>> positive_y_is_up = True >>> # Draw everything the pymunk way, (0,0) in the bottom left corner
You can control the color of a shape by setting shape.color to the color you want it drawn in.
>>> c = pymunk.Circle(None, 10) >>> c.color = pygame.color.THECOLORS["pink"]
See pygame_util.demo.py for a full example
Parameters: - surface : pygame.Surface
Surface that the objects will be drawn on
-
collision_point_color
¶
-
color_for_shape
(shape)¶
-
constraint_color
¶
-
flags
¶
-
shape_dynamic_color
= SpaceDebugColor(r=52, g=152, b=219, a=255)¶
-
shape_kinematic_color
= SpaceDebugColor(r=39, g=174, b=96, a=255)¶
-
shape_outline_color
¶
-
shape_sleeping_color
= SpaceDebugColor(r=114, g=148, b=168, a=255)¶
-
shape_static_color
= SpaceDebugColor(r=149, g=165, b=166, a=255)¶
-
-
pymunk.pygame_util.
get_mouse_pos
(surface)[source]¶ Get position of the mouse pointer in pymunk coordinates.
-
pymunk.pygame_util.
to_pygame
(p, surface)[source]¶ Convenience method to convert pymunk coordinates to pygame surface local coordinates.
Note that in case positive_y_is_up is False, this function wont actually do anything except converting the point to integers.
-
pymunk.pygame_util.
from_pygame
(p, surface)[source]¶ Convenience method to convert pygame surface local coordinates to pymunk coordinates
-
pymunk.pygame_util.
positive_y_is_up
= True¶ Make increasing values of y point upwards.
When True:
y ^ | . (2, 2) | ----+------ > x | | . (3, -2) |
When False:
y ^ | . (2, -2) | ----+------ > x | | . (3, 2) |