- commit
- b69ed0f47a7bc0bf88544bde98b2e262b8703558
- parent
- 0da161497db53cfc5d89d2744c1df4ec01df2032
- Author
- Tobias Bengfort <tobias.bengfort@gmx.net>
- Date
- 2014-10-12 15:08
Merge branch 'collision-feature'
Diffstat
| M | laneya/server.py | 21 | +++++++++++++++++---- |
1 files changed, 17 insertions, 4 deletions
diff --git a/laneya/server.py b/laneya/server.py
@@ -19,6 +19,7 @@ class Server(protocol.ServerProtocolFactory): 19 19 def __init__(self): 20 20 protocol.ServerProtocolFactory.__init__(self) 21 21 self.users = {} -1 22 self.movable_layer = [[None for i in xrange(100)] for i in xrange(100)] 22 23 23 24 def requestReceived(self, user, action, **kwargs): # TODO 24 25 if user not in self.users: @@ -36,13 +37,13 @@ class Server(protocol.ServerProtocolFactory): 36 37 def mainloop(self): 37 38 for key, user in self.users.iteritems(): 38 39 if user.direction == 'north':39 -1 user.position_y -= 1-1 40 self.move_user(user, 0, -1) 40 41 elif user.direction == 'east':41 -1 user.position_x += 1-1 42 self.move_user(user, 1, 0) 42 43 elif user.direction == 'south':43 -1 user.position_y += 1-1 44 self.move_user(user, 0, 1) 44 45 elif user.direction == 'west':45 -1 user.position_x -= 1-1 46 self.move_user(user, -1, 0) 46 47 if user.direction != 'stop': 47 48 self.broadcastUpdate( 48 49 'position', @@ -50,6 +51,18 @@ class Server(protocol.ServerProtocolFactory): 50 51 y=user.position_y, 51 52 entity=key) 52 53 -1 54 def collision_check(self, new_x, new_y): -1 55 return self.movable_layer[new_x][new_y] is None -1 56 -1 57 def move_user(self, user, dx, dy): -1 58 if self.collision_check(user.position_x, user.position_y - 1): -1 59 self.movable_layer[user.position_x][user.position_y] = None -1 60 user.position_x += dx -1 61 user.position_y += dy -1 62 self.movable_layer[user.position_x][user.position_y] = user -1 63 else: -1 64 raise protocol.IllegalError -1 65 53 66 54 67 def main(): 55 68 log.startLogging(sys.stdout)