Я новичок в python и прохожу код этой маленькой игры (https://www.raywenderlich.com/2795-beginning-game-programming-for-teens-with-python для полного описания). Я пытаюсь понять, как этот код отслеживает фактические элементы на экране иболее конкретно, как он «знает», какой элемент в списке должен появиться, как только он достигнет установленных границ.(См. Ниже) Теоретически я понимаю идею циклов for, используемых в этом коде, но у меня есть ощущение, что в этом коде либо что-то не то, либо, что не менее вероятно, то, как я думаю об этом, отсутствует логическая часть.
Большое спасибо!
for bullet in arrows:
index=0
velx= math.cos(bullet[0])*10
vely= math.sin(bullet[0])*10
bullet[1]+=velx
bullet[2]+=vely
if bullet[1]<-64 or bullet[1]>640 or bullet[2]<-64 or bullet[2]>480:
arrows.pop(index)
index+=1
index=0
for badguy in badguys:
if badguy[0]<-64:
badguys.pop(index)
badguy[0]-=7
index+=1
Как я думаю, в первом цикле "стрелка" индекс всегда будет оставаться "0", поэтому независимо от того, какойстрелка покидает экран, только первый элемент [0] в списке стрелок будет удален (всплывающее).Кроме того, я также не понимаю, почему в конце индекса + = 1, когда сразу после него возвращается значение [0]?
Второй, индекс на самом деле идет вверх (я проколол его на экране), но все еще только «плохой парень», покидающий экран (который в этом случае всегда является первым элементом списка [0], выталкивается из этого списка, хотя из кода я думаю, что это должен быть элемент сприсвоенное значение индекса (например, [3] или [4] ...)
Большое спасибо и извините за длинный текст.