我创建了对象
class Disk:
def __init__(self,number,colour,position,size):
self.size = size
self.colour = colour
self.number = number
self.position = position
def Render(self,screen):
pygame.draw.rect(screen,self.colour,(self.position,self.size))
我正在尝试使用用户输入创建此对象的数组(现在我只是创建自己的数字) 颜色是我创建的一个单独的数组(它可以工作)
def drawDisk(screen,colours):
num = 5
for i in range (num):
disk[i] = Disk(i,colours[i*num],(0+(i*15),500-(i*50)),(400 -(i*30),50))
disk[i].Render(screen)
除了我尝试创建磁盘阵列并使用这些磁盘而不是对每个磁盘进行硬编码时,我的程序才有效。
答案 0 :(得分:0)
您尚未定义disk
。您正在尝试同时创建列表及其中的项目并对其进行迭代,但实际上并没有告诉Python disk
应该是什么。尝试:
def drawDisk(screen, colours):
disk = [Disk(i, colours[i], (0+(i*15), 500-(i*50)), (400 -(i*30), 50))
for i in range(len(colours))] # create and fill disk
# list comprehension, equivalent to:
# disk = []
# for i in range(len(colours)):
# disk.append(Disk(i, colours[i], ...))
for d in disk:
d.Render(screen) # use items in disk
return disk # for use elsewhere