def send_move(self, vector, destination = False): message = pack(Move(vector, destination)) self.put_message(message) #предварительное движение if vector and not self.shift and not self.antilag: step = vector * ((TILESIZE/5) / abs(vector)) if step<vector: shift = step else: shift = vector self.parent.antilag_init(shift) self.antilag_shift = shift self.antilag = True
def game_worker(self): "передает запросы, новых/отключившихся клиентов движку, и получает запросы" #смотрим новых клиентов for client_name in self.server.get_accepted(): self.client_list.add(client_name) for response in self.game.game_connect(client_name): accept_response = pack(response) self.server.put_response(client_name, accept_response) #смотрим отключившихся клиентов for client_name in self.server.get_closed(): self.game.game_quit(client_name) self.client_list.remove(client_name) #смотрим новые запросы и очищаем очередь requestes = list(self.server.get_requestes()) for client_name, message in requestes: self.client_requestes[client_name].append(unpack(message)) #отправляем запросы движку self.game.game_requests(self.client_requestes) self.client_requestes.clear() #обновляем движок self.game.game_update() #вставляем ответы в очередь на отправку for client_name, messages in self.game.game_responses(): for message in messages: response = pack(message) self.server.put_response(client_name, response) #завершаем раунд игры self.game.end_round()
def send_apply_item(self, slot): message = pack(ApplyItem(slot)) self.put_message(message)
def send_skill(self): message = pack(Skill()) self.put_message(message)
def send_ball(self, vector): message = pack(Strike(vector)) self.put_message(message)