Элемент 'int' не индексируется - PullRequest
0 голосов
/ 20 июня 2020

Я пытаюсь заставить маленького инопланетянина перемещаться случайным образом, и все время получаю: TypeError: объект 'int' не подлежит подписке

Это мой код:


        if direction == 'left':
            Enemy_X_change = -10
        if direction == 'right':
            Enemy_X_change = 10
        if direction == 'up':
            Enemy_Y_change = -10
        if direction == 'left':
            Enemy_Y_change = 10

        EnemyX[i] = Enemy_X_change[i] + EnemyX[i]
        EnemyY[i] = Enemy_Y_change[i] + EnemyY[i]

Ответы [ 3 ]

1 голос
/ 20 июня 2020

Это происходит потому, что Enemy_X_change не относится к списку типов, к элементам которого вы можете обращаться. Это тип int. Попробуйте удалить i в функции, например, чтобы сделать ее типом int (имейте в виду, что вам придется изменить остальную часть вашего кода):

        if direction == 'left':
            Enemy_X_change = -10
        if direction == 'right':
            Enemy_X_change = 10
        if direction == 'up':
            Enemy_Y_change = -10
        if direction == 'left':
            Enemy_Y_change = 10

        EnemyX[i] = Enemy_X_change + EnemyX[i]
        EnemyY[i] = Enemy_Y_change + EnemyY[i]

Надеюсь, это поможет :)

0 голосов
/ 20 июня 2020

Вы пытаетесь использовать EnemyX[i] = Enemy_X_change[i] + EnemyX[i], где из общего фрагмента кода видно, что Enemy_X_change является неизменяемым объектом, и вы используете операцию индексирования над ним, которая вызывает ошибку, не подлежащую подписке: -

>>> Enemy_Y_change = 10
>>> Enemy_Y_change[2]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'int' object is not subscriptable
0 голосов
/ 20 июня 2020

EnemyX[i] += Enemy_X_change и EnemyY[i] += Enemy_Y_change должны работать. Вы пытаетесь использовать целочисленный тип в качестве массива, поэтому он вызывает ошибку. Я думаю, вы случайно набрали Enemy_X_change[i] вместо Enemy_X_change. Также может быть так, что он должен быть EnemyX вместо EnemyX[i].

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...