Python игра космических захватчиков пытается сравнить x-координаты всех врагов с координатами стены - PullRequest
0 голосов
/ 01 августа 2020

Я делаю клон космических захватчиков и пытаюсь реализовать столкновение со стеной врага, но, похоже, не могу сравнить все координаты x со стеной (я нарисовал всех врагов с помощью черепахи и поместил их в список). я получаю сообщение об ошибке (если враги_координаты [i]> -280: IndexError: индекс списка вне допустимого диапазона), что меня смущает, потому что я добавляю координаты врагов в список враги_координаты, но он выводит только один. Я, наверное, делаю что-то странное, любая помощь приветствуется.

#FIXME Check the cordainates of all enemies for wall collison
def enemy_coor():
    i = 0
    for alien in enemies:
        global enemies_coordinates
        enemies_coordinates = []
        enemies_coordinates.append(enemies[i].xcor())
        print(enemies_coordinates)
        i += 1

#FIXME Wall collioson
def alien_wall_collison():
    i = 0
    for alien in enemies:
        print(i)
        if enemies_coordinates[i] > -280:
            print("turn Right")
        i += 1

Ответы [ 2 ]

0 голосов
/ 01 августа 2020

вы добавляете значения к вражеским_координатам = [], но вы не определили врагов, или вы можете попробовать этот враги_coordinates.append (alien [i] .xcor ()) вместо того, чтобы делать это после определения врагов

и уменьшите значение условия if

0 голосов
/ 01 августа 2020

Одна из ваших ошибок заключается в том, что вы сбрасываете enemies_coordinates с каждым l oop в enemy_coor. Я предлагаю код без этой ошибки, я также использовал перечисление для улучшения привычек программирования, и в целом я не рекомендую вам использовать глобальные переменные, но я придерживаюсь вашей текущей реализации.

enemies_coordinates = []

def enemy_coor():
   global enemies_coordinates
   for alien in enemies:
       enemies_coordinates.append(alien.xcor())
       print(enemies_coordinates)

def alien_wall_collison():
    for i, alien in enumerate(enemies):
        if enemies_coordinates[i] > -280:
            print("turn Right")
...