Pyglet - Найти новые джойстики с момента последней проверки - PullRequest
0 голосов
/ 30 октября 2018

Я создаю игру и использую pyglet.input.get_joysticks(), чтобы получить все доступные на компьютере джойстики для управления игрой.

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

Пока я здесь, я также хотел бы определить джойстики, которые больше не доступны, чтобы удалить их соответствующего игрока из игры.

Вот упрощенная версия того, как я пытаюсь это сделать:

class PyuicMapper(pyuic.HIDMapper):
    def __init__(self):
        self.joysticks = []

    def find_connected_and_disconnect_hids_since_last_check(self):
        joysticks = pyglet.input.get_joysticks()

        new_joysticks     = [js for js in joysticks if not any(js.device == js2.device for js2 in self.hids)]
        removed_joysticks = [js for js in self.js   if not any(js.device == js2.device for js  in joysticks)]

        self.joysticks += new_joysticks
        return (new_joysticks, removed_joysticks)

Этот код не работает, потому что сравнение того же устройства или нет js.device == js2.device никогда не дает True.

Это очевидно, потому что атрибут, который я сравниваю (.device), каждый раз отличается.

a) Могу ли я сравнить какие-либо атрибуты, чтобы определить, совпадают ли два джойстика пиглета?

или

б) Есть ли другой способ найти новые джойстики (и отключенные джойстики) с момента последней проверки?

...