我正在尝试制作一个程序,在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))
但是,该程序突出显示了粗体字,表示“无法分配给函数调用”,我的老师说这可能是因为我试图将二维变量分配给一维数组。有小费吗?
在通过索引分配给它之前,您需要告诉python您的zombiepos是一个数组:
zombiepos = []
for _ in range(10):
zombiepos.append([-1,-1])
您还必须同时将while语句中的for语句更改为range(10)。
全局声明是不必要的。如果要访问函数中的僵尸数量,则需要使用它。
另外,正如您的代码的某些注释中所提到的那样,当您访问zombiepos中的项目时,需要使用方括号[]而不是括号
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句