def get_sprites(surface, sprite_width, sprite_height):
    """
    Takes a sprite sheet and splits it into sprites of size (sprite_width, sprite_height).
    sprite_width and sprite_height must divide evenly into the surface's width/height
    Returns a list of sprites or None if the bounds are not sane
    """
    rect = surface.get_rect()
    rows = rect.h/sprite_height
    cols = rect.w/sprite_width
    if rows <= 0 or cols <= 0:
        return None
    sprites = []
    for y in range(0,rows):
        for x in range(0,cols):
            sprites.append(surface.subsurface( (x*sprite_width, y*sprite_height, sprite_width, sprite_height)))
    return sprites
