Mercurial > nagslang
diff nagslang/utils.py @ 488:ae8eb7c0f7bb
Better wall and bulkhead drawing.
author | Jeremy Thurgood <firxen@gmail.com> |
---|---|
date | Sat, 07 Sep 2013 17:40:59 +0200 |
parents | ca89d566f9ef |
children |
line wrap: on
line diff
--- a/nagslang/utils.py Sat Sep 07 17:38:50 2013 +0200 +++ b/nagslang/utils.py Sat Sep 07 17:40:59 2013 +0200 @@ -1,7 +1,8 @@ import pygame import pygame.locals as pgl -from pymunk.vec2d import Vec2d +import pymunk +import pymunk.pygame_util def convert_colour(colour): @@ -15,19 +16,39 @@ def vec_from_angle(angle, length=1): - vec = Vec2d(length, 0) + vec = pymunk.Vec2d(length, 0) vec.angle = angle return vec def vec_with_length(coords, length=1): - vec = Vec2d(coords) - # Don't crash if we're created a zero length vector + vec = pymunk.Vec2d(coords) + # Don't crash if we've created a zero length vector if vec.length != 0: vec.length = length return vec +def points_to_lines(points): + if len(points) < 2: + return + last_point = points[0] + for point in points[1:]: + yield (last_point, point) + last_point = point + + +def extend_line(a, b, length): + offset = vec_from_angle((a - b).angle, abs(length)) + if length < 0: + offset = -offset + return (a + offset, b - offset) + + +def points_to_pygame(surface, points): + return [pymunk.pygame_util.to_pygame(p, surface) for p in points] + + def tile_surface(size, tile_image): # create a surface, approriately tiled surface = pygame.surface.Surface(size, pgl.SRCALPHA)