Add performance debugging for lights.
authorSimon Cross <hodgestar@gmail.com>
Sun, 4 Sep 2016 20:56:08 +0000 (22:56 +0200)
committerSimon Cross <hodgestar@gmail.com>
Sun, 4 Sep 2016 20:56:08 +0000 (22:56 +0200)
tabakrolletjie/constants.py
tabakrolletjie/lights.py

index d5aebb68043ae3d73a18ac2e35371b540c3c0cae..8e6bac7d4ba92dacb82cd72f5ee83e98e967e57f 100644 (file)
@@ -3,6 +3,9 @@
 
 TITLE = "Space Turnips"
 
+# Debug
+DEBUG = False
+
 # 704 is 768 minus space for window decorations :)
 SCREEN_SIZE = (1024, 704)
 
index a22ea14472708041db5dc98fe061c769120e619d..ece9c4ef950ae698817bd6d2a549dbfbb85497f8 100644 (file)
@@ -1,11 +1,13 @@
 """ May it be a light for you in dark places, when all other lights go out.
 """
 
+import time
+
 import pymunk
 import pymunk.pygame_util
 import pygame.draw
 
-from .constants import SCREEN_SIZE, LIGHT_CATEGORY
+from .constants import SCREEN_SIZE, LIGHT_CATEGORY, DEBUG
 
 LIGHT_FILTER = pymunk.ShapeFilter(
     mask=pymunk.ShapeFilter.ALL_MASKS ^ LIGHT_CATEGORY,
@@ -19,17 +21,19 @@ def screen_rays(pos):
     """
     w, h = SCREEN_SIZE
     left, right, bottom, top = 0, w, 0, h
-    for y in range(h):
+    step = 1
+    for y in range(0, h, step):
         yield pymunk.Vec2d(left, y)
-    for x in range(w):
+    for x in range(0, w, step):
         yield pymunk.Vec2d(x, top)
-    for y in range(top, -1, -1):
+    for y in range(top, -1, -step):
         yield pymunk.Vec2d(right, y)
-    for x in range(right, -1, -1):
+    for x in range(right, -1, -step):
         yield pymunk.Vec2d(x, bottom)
 
 
 def calculate_ray_polys(space, body, position):
+    start_time = time.time()
     position = pymunk.Vec2d(position)
     vertices = [position]
     ray_polys = []
@@ -48,7 +52,11 @@ def calculate_ray_polys(space, body, position):
                 ray_polys.append(new_poly)
     if len(vertices) > 2:
         ray_polys.append(pymunk.Poly(body, vertices))
-    print "NUM POLYS: ", len(ray_polys)
+    end_time = time.time()
+    if DEBUG:
+        print(
+            "calculate_ray_polys: %d polys, %g seconds" %
+            (len(ray_polys), end_time - start_time))
     return ray_polys