Pymunx/Documentation

From OLPC
< Pymunx
Revision as of 16:15, 8 March 2008 by Crazy-chris (talk | contribs) (+get_element_count)
Jump to: navigation, search

pymunx

Physics API for easy usage of chipmunk physics engine in pygame (with pymunk)
pymunx.__init__ Init function: pymunk, get flags, get screen size, init space
pymunx.set_info Set the Info-Text for the upper left corner
pymunx.flipy Convert Chipmunk y-coordinate to pyGame
pymunx.vec2df Convert a pygame pos to a vec2d with flipped y coordinate
pymunx.autoset_screen_size Get screensize from pygame
pymunx.get_pymunk_flags Check pymunk version and adjusts settings
pymunx.update Update the physics space
pymunx.draw Call draw_shape for each element
pymunx.draw_shape Draw a given shape (circle, segment, poly) on the surface
pymunx.add_wall Add a fixed wall
pymunx.add_ball Add a ball
pymunx.add_square Add a square
pymunx.add_poly Add a polygon
pymunx.get_element_count Returns the current element count


pymunx.__init__

def __init__(self, gravity=(0.0,-900.0))
  • Init function - pymunk, get flags, get screen size, init space
  • Parameters: gravity = (int(x), int(y))
  • Returns: class pymunx


pymunx.set_info

pymunx.set_info(self, txt)
  • Set the Info-Text which will be blit at the upper left corner each update
  • Parameters: txt = str (break lines with \n)
  • Returns: -


pymunx.flipy

pymunx.flipy (self, y)
  1. Convert Chipmunk y-coordinate to pyGame (y = -y + self.display_height)
  2. Parameters: y = int
  3. Returns: int(y_new)


pymunx.vec2df

pymunx.vec2df(self, pos)
  • Convert a pygame pos to a vec2d with flipped y coordinate
  • Parameters: pos = (int(x), int(y))
  • Returns: class vec2d((pos[0], self.flipy(pos[1])))


pymunx.autoset_screen_size

pymunx.autoset_screen_size (self)
  • Get screensize from pygame. Call this only on resize
  • Returns: -


pymunx.get_pymunk_flags

pymunx.get_pymunk_flags (self)
  • Check pymunk version, adjusts settings and returns new flagset
  • Returns: class pymunk_flags


pymunx.update

pymunx.update (self, fps=50.0, steps=5)
  • Update thy physics. fps is optional and by default set to 50.0 - steps is substeps per update
  • Returns: -


pymunx.draw

pymunx.draw (self, surface)
  • Iterate through all elements and call draw_shape with each
  • Parameters: surface = pygame.Surface
  • Returns: -


pymunx.draw_shape

pymunx.draw_shape (self, surface, shape)
  • Draw a given shape (circle, segment, poly) on the surface
  • Parameters: surface = pygame.Surface | shape = pymunk.Shape
  • Returns: -


pymunx.add_wall

pymunx.add_wall (self, p1, p2, friction=10.0)
  • Add a fixed wall between points p1 and p2. friction is a optional parameter
  • Parameters: p = (int(x), int(y))
  • Returns: -


pymunx.add_ball

pymunx.add_ball (self, pos, radius=15, mass=10.0, inertia=1000, friction=0.5)
  • Add a ball at pos. Other parameters are optional
  • Parameters: pos = (int(x), int(y))
  • Returns: -


pymunx.add_square

pymunx.add_square (self, pos, a=18, mass=5.0, friction=0.2)
  • Add a square at pos.
  • Parameters: pos = (int(x), int(y))
  • Returns: -


pymunx.add_poly

pymunx.add_poly(self, points, mass=150.0, friction=10.0)
  • Add a polygon from given a given pygame pointlist
  • Parameters: points = [(int(x), int(y)), (int(x), int(y)), ...]
  • Returns: -


pymunx.get_element_count

pymunx.get_element_count(self)
  • Returns the current element count
  • Returns: int(n)