Mercurial > nagslang
changeset 263:6c554ce627e3
Add angle to doors
author | Neil Muller <drnlmuller@gmail.com> |
---|---|
date | Thu, 05 Sep 2013 00:38:14 +0200 |
parents | 521f73061872 |
children | c1d862334e3d |
files | data/levels/level1 data/levels/level2 nagslang/game_object.py |
diffstat | 3 files changed, 11 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- 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
--- 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:
--- 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):