Попытка отключить игроков - PullRequest
1 голос
/ 26 мая 2020

Я пытался сделать многопользовательскую игру с помощью pygame. У меня большие проблемы с отключением плеера должным образом.

Каждый раз, когда я закрываю клиента, клиенты, которые были открыты ранее, больше не работают. Я думаю, что проблема в файле сервера, но я не совсем уверен, как ее исправить. это ошибка сервера:

line 50, in threaded_client
    del players[player]
IndexError: list assignment index out of range

это мой код мой код

Заранее спасибо!

1 Ответ

2 голосов
/ 26 мая 2020

Согласно комментарию @Seb, оператор del удаляется по ключу. Если ключ отсутствует в списке (например, длина списка уменьшилась), возникает ошибка IndexError.

В вашей основной l oop и функции потока вам будет лучше обслуживаться передача объекта Player по ссылке. Внутри функции потока плеера вам нужно:

  1. не нужно читать игрока из списка по индексу, вам просто будет доступен экземпляр
  2. вы можете удалите игрока из списка с помощью player.remove (player)

Вы также захотите использовать функцию обновления вместо того, чтобы повторно назначать объект вашего игрока каждый l oop.

...