Проблема в том, что код имеет джойстик в списке, но каждый раз, когда список создается заново с одним элементом. Поэтому, когда x
равно нулю, все в порядке. Но на второй итерации joysticks
- это всего лишь список из 1 элемента, но код запрашивает второй элемент (потому что x
== 1).
for x in range(count):
joysticks = [pygame.joystick.Joystick(x)]
joysticks[x].init()
Полагаю, вы хотели создать список джойстиков:
joysticks = []
for i in range( count ):
joysticks.append( pygame.joystick.Joystick( i ) )
joysticks[i].init()
Вы могли бы также использовать joysticks[-1].init()
, чтобы всегда получать последний элемент, но это не выделило бы эту ошибку.
Примечание о стиле: обычно соглашение использовать переменную i
для простого итератора l oop. (Иногда j
и k
тоже для вложенных циклов). Это несколько важно, потому что другие программные движки смогут быстрее читать код, потому что это соответствует тому, как большинство людей пишут код. Любой вы смогут более быстро понять свой код. Но в конечном итоге это ваш код, поэтому пишите его так, как вам нравится.