laneya

multiplayer roguelike game
git clone https://git.ce9e.org/laneya.git

commit
5b2866e99f5da53b0855908aa673633150c951cf
parent
0da161497db53cfc5d89d2744c1df4ec01df2032
Author
radow <masteroftheriddles@googlemail.com>
Date
2014-10-12 14:17
Introduce collision

Diffstat

M laneya/server.py 22 +++++++++++++++++++++-

1 files changed, 21 insertions, 1 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 = [[False 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,24 @@ 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                 if collision_check(user.position_x, user.position_y-1):
   -1    41                     self.movable_layer[user.position_x][user.position_y] = False
   -1    42                     user.position_y -= 1
   -1    43                     self.movable_layer[user.position_x][user.position_y] = user
   -1    44                 else:
   -1    45                     raise protocol.IllegalError
   40    46             elif user.direction == 'east':
   -1    47                 # self.movable_layer[user.position_x][user.position_y] = False
   41    48                 user.position_x += 1
   -1    49                 # self.movable_layer[user.position_x][user.position_y] = user
   42    50             elif user.direction == 'south':
   -1    51                 # self.movable_layer[user.position_x][user.position_y] = False
   43    52                 user.position_y += 1
   -1    53                 # self.movable_layer[user.position_x][user.position_y] = user
   44    54             elif user.direction == 'west':
   -1    55                 # self.movable_layer[user.position_x][user.position_y] = False
   45    56                 user.position_x -= 1
   -1    57                 # self.movable_layer[user.position_x][user.position_y] = user
   46    58             if user.direction != 'stop':
   47    59                 self.broadcastUpdate(
   48    60                     'position',
@@ -50,6 +62,14 @@ class Server(protocol.ServerProtocolFactory):
   50    62                     y=user.position_y,
   51    63                     entity=key)
   52    64 
   -1    65     def collision_check(self, new_x, new_y):
   -1    66         if self.movable_layer[newx][new_y] == False:
   -1    67             return True
   -1    68         else:
   -1    69             return False
   -1    70 
   -1    71 #  def move_user()
   -1    72 
   53    73 
   54    74 def main():
   55    75     log.startLogging(sys.stdout)