如何将二维变量赋给数组

2024-04-26 00:32:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试做一个程序,生成多达10个“僵尸”在pygame。但是,以下代码有问题:

ZOMBIE = pygame.image.load('zombie.png')

zombieamount = 0

**zombiepos(1) = [-1,-1]
zombiepos(2) = [-1,-1]
zombiepos(3) = [-1,-1]
zombiepos(4) = [-1,-1]
zombiepos(5) = [-1,-1]
zombiepos(6) = [-1,-1]
zombiepos(7) = [-1,-1]
zombiepos(8) = [-1,-1]
zombiepos(9) = [-1,-1]
zombiepos(10) = [-1,-1]**

while True:
    for i in range (1,10):
         time.sleep(5)
         x=randint(0,30)
         y=randint(0,20)
         **zombiepos(i) = [x,y]**
         global zombieamount
         zombieamount =+ 1

     for i in range (1,zombieamount):
         window.blit(ZOMBIE, (zombiepos(i)[0]*TILESIZE, zombiepos(i)[1]*TILESIZE))

然而,程序突出显示了粗体的语句,指出“不能分配给函数调用”,我的老师说,这可能是因为我试图将二维变量分配给一维数组。有什么建议吗?你知道吗


Tags: 代码inimage程序forloadrangepygame
1条回答
网友
1楼 · 发布于 2024-04-26 00:32:38

在通过索引分配给python之前,您需要告诉python您的zombiepos是一个数组:

zombiepos = []
for _ in range(10):
    zombiepos.append([-1,-1])

您还必须将while中的for语句更改为范围(10)。你知道吗

全球声明是不必要的。如果在函数中访问zombieamounts,则需要使用它。你知道吗

另外,正如代码中的一些注释所述,当您访问zombiepos中的项目时,需要使用方括号[]而不是圆括号

相关问题 更多 >

    热门问题