Я создаю игру-шутер с боковым скроллером, в которой враги (дроны) постоянно появляются в правой части экрана.Недавно созданные враги добавляются в список drones
Каждый враг направляется влево к экрану.Как только они исчезают с экрана, их удаляют из списка.
Я также хочу удалить дронов, когда они сталкиваются с игроком.Следующий код работает должным образом, пока в списке drones
есть несколько объектов, но если в списке есть только один элемент (поэтому на экране присутствует один дрон), этот дрон не удаляется при столкновении.
Понятия не имею, почему первый элемент списка нельзя уничтожить.
drones = []
class Drone
#other call methods
def hit(self):
del drones[drones.index(self)]
def generate_enemy():
global drones
if len(drones) < 20:
if (random.randint(1,100) == 1):
drones.append(Drone(screenWidth, random.randint(300,500))
def main():
global drones
while True:
#main loop stuff happening
if condition == True:
generate_enemy():
#main loop stuff happening
if player and (len(drones) > 0):
for i in range(len(drones)-1):
if drones[i].hitbox.colliderect(player.hitbox):
drones[i].hit()
main()