# HG changeset patch # User Neil Muller # Date 1378334294 -7200 # Node ID 6c554ce627e35eaa8f4c2103292065c7f060857d # Parent 521f73061872817b1570de402652786fbd2e3da6 Add angle to doors diff -r 521f73061872 -r 6c554ce627e3 data/levels/level1 --- a/data/levels/level1 Thu Sep 05 00:37:23 2013 +0200 +++ b/data/levels/level1 Thu Sep 05 00:38:14 2013 +0200 @@ -33,11 +33,13 @@ - [400, 400] - level2 - [900, 200] + - 0 classname: Door - args: - [600, 200] - level1 - [600, 700] + - 0 - door_switch classname: Door name: switch_door diff -r 521f73061872 -r 6c554ce627e3 data/levels/level2 --- a/data/levels/level2 Thu Sep 05 00:37:23 2013 +0200 +++ b/data/levels/level2 Thu Sep 05 00:38:14 2013 +0200 @@ -5,6 +5,7 @@ - [400, 400] - level1 - [600, 700] + - 90 classname: Door lines: [] polygons: diff -r 521f73061872 -r 6c554ce627e3 nagslang/game_object.py --- a/nagslang/game_object.py Thu Sep 05 00:37:23 2013 +0200 +++ b/nagslang/game_object.py Thu Sep 05 00:38:14 2013 +0200 @@ -1,6 +1,8 @@ import pymunk import pymunk.pygame_util +import math + from nagslang import puzzle from nagslang import render from nagslang.constants import ( @@ -236,11 +238,13 @@ class Door(GameObject): zorder = ZORDER_FLOOR - def __init__(self, space, position, destination, dest_pos, key_state=None): + def __init__(self, space, position, destination, dest_pos, angle, + key_state=None): body = make_body(pymunk.inf, pymunk.inf, position, damping=0.5) self.shape = pymunk.Poly( - body, [(-32, -32), (32, -32), (32, 32), (-32, 32)]) + body, [(-4, -30), (4, -30), (4, 30), (-4, 30)]) self.shape.collision_type = COLLISION_TYPE_DOOR + self.shape.body.angle = float(angle)/180 * math.pi self.shape.sensor = True self.destination = destination self.dest_pos = tuple(dest_pos) @@ -262,7 +266,8 @@ def requires(cls): return [("name", "string"), ("position", "coordinates"), ("destination", "level name"), ("dest_pos", "coordinate"), - ("key_state", "puzzler")] + ("angle", "degrees"), + ("key_state", "puzzler (optional)")] class Bulkhead(GameObject):