예제 #1
0
 def on_open(self, *args, **kwargs):
     global next_id
     server.clients.add(self)
     self.id = next_id
     print 'Created client ' + str(self.id)
     next_id += 1
     packet = {'init': {'id': self.id}}
     server.send(self, packet)
예제 #2
0
 def on_open(self, *args, **kwargs):
     global next_id
     server.clients.add(self)
     self.id = next_id;
     print 'Created client ' + str(self.id)
     next_id += 1;
     packet = {'init': {'id': self.id}}
     server.send(self, packet)
예제 #3
0
 def on_open(self, *args, **kwargs):
     global next_id
     server.participants.add(self)
     self.id = next_id;
     print 'Created player ' + str(self.id)
     next_id += 1;
     self.x = server.map.start[0]
     self.y = server.map.start[1]
     packet = {'init': {'id': self.id,
                        'x': self.x, 
                        'y': self.y,
                        'map': server.map.cells}}
     server.send(self, packet)
예제 #4
0
    def on_message(self, message):
        if 'move' in message:
            nx = self.x
            ny = self.y
            dir = message['move']
            if dir == 'left':
                nx -= 1
            elif dir == 'up':
                ny -= 1
            elif dir== 'right':
                nx += 1
            elif dir == 'down':
                ny += 1
            if not server.map.is_passable(nx, ny, self):
                return

            self.x = nx
            self.y = ny

        for p in server.participants:
            server.send(p, {'update': {'id': self.id,
                                       'x': self.x,
                                       'y': self.y}})
        server.map.tick(server)
예제 #5
0
 def on_close(self):
     server.participants.remove(self)
     packet = {'left': {'id': self.id}}
     for p in server.participants:
         server.send(p, packet)