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)