Pygame for loop循环一次,然后不再循环

时间:2019-04-30 01:50:56

标签: python-3.x pygame

本质上,我正在做的是获取敌人列表(第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)

1 个答案:

答案 0 :(得分:1)

您正在尝试修改局部变量,而不是列表中的值。您需要编写:

enemy[1] += 10

由于整数是不可变的(不能更改),因此行y = enemy[1]可以认为是“将值从enemy[1]复制到y

相关问题