本质上,我正在做的是获取敌人列表(第1行),该列表保存着一个坐标列表,并在底部的敌人列表中逐对遍历。
我想遍历列表中的每个敌人,获取y坐标,添加10,然后转到下一个敌人并添加10,依此类推。由于某种原因,它会增加10次,然后停止,并且敌人不会掉落在屏幕上。我不知道为什么会这样。为什么它不再通过for循环运行?非常感谢您的帮助。
注意:为了减少混乱,我在顶部删除了一些代码。 update()函数只是pygame flip函数。
enemies = [[100,0], [150,0]]
while True:
for enemy in enemies:
x = enemy[0]
y = enemy[1]
y += 10
pygame.draw.rect(screen, (255,0,0), (x, y,10,10))
# uses flip to update the screen
update()
# FPS
clock.tick(20)
答案 0 :(得分:1)
您正在尝试修改局部变量,而不是列表中的值。您需要编写:
enemy[1] += 10
由于整数是不可变的(不能更改),因此行y = enemy[1]
可以认为是“将值从enemy[1]
复制到y
”