Jermous Ответов: 2

Я получаю эту ошибку typeerror: объект 'int' не является подписываемым и idl, что делать


Итак, это мой игровой код:

playerX = 450
playerY = 580
playerX_change = 0
playerY_change = 0

enemyImg = []
enemyX = []
enemyY = []
enemyX_change = []
enemyY_change = []
num_of_enemies = 3

for i in range(num_of_enemies):
    enemyImg.append(pygame.image.load(""))
    enemyX.append(random.randint(0, 935))
    enemyY.append(random.randint(40, 140))
    enemyX_change.append(1.5)
    enemyY_change.append(random.uniform(0.3, 0.8))

bulletImg = pygame.image.load("")
bulletX = 0
bulletY = 0
bulletX_change = 0
bulletY_change = 7
bullet_state = "ready"

score = 0

def player(x, y):
    screen.blit(playerImg, (x, y))

def enemy(x, y, i ):
    screen.blit(enemyImg[i], (x, y))

for i in range(num_of_enemies):
        enemyX[i] += enemyX_change[i]
        enemyY[i] += enemyY_change[i]
        if enemyX[i] <=0:
            enemyX_change[i] = 1.5
            enemyY[i] += enemyY_change[i]
        elif enemyX[i] >=935:
            enemyX_change[i] = -1.5
            enemyY[i] += enemyY_change[i]

        collision = isCollision(enemyX[i], enemyY[i], bulletX[i], bulletY[i])
        if collision:
            bulletY[i] = 580
            bullet_state = "ready"
            score += 1
            print(score)
            enemyX[i] = random.randint(0, 1000)
            enemyY[i] = random.randint(40, 140)   

        enemy(enemyX[i], enemyY[i], i)            


Я получаю следующую ошибку:

collision = isCollision(enemyX[i], enemyY[i], bulletX[i], bulletY[i])
TypeError: 'int' object is not subscriptable


Что я уже пробовал:

Я пробовал добавлять int в местах и но ничего

2 Ответов

Рейтинг:
2

Richard MacCutchan

bulletX = 0
bulletY = 0

Эти две переменные являются скалярными элементами, а не массивами.