Python 如何使用不同的变量y绘制多个对象?
我在程序中创建了一个类Python 如何使用不同的变量y绘制多个对象?,python,list,oop,pygame,Python,List,Oop,Pygame,我在程序中创建了一个类Rack(object),以及在屏幕上绘制对象的方法draw()。我需要画10个相同的对象,但是使用不同的变量y(每个下一个对象必须增加60) 我尝试附加列表中的每个对象,然后通过 for i in list: i.y += 60 但程序仍在绘制相同的对象 我的课程和方法: class Rack(object): def __init__(self, x, y, height, width): self.x = x self.y
Rack(object)
,以及在屏幕上绘制对象的方法draw()
。我需要画10个相同的对象,但是使用不同的变量y(每个下一个对象必须增加60)
我尝试附加列表中的每个对象,然后通过
for i in list:
i.y += 60
但程序仍在绘制相同的对象
我的课程和方法:
class Rack(object):
def __init__(self, x, y, height, width):
self.x = x
self.y = y
self.height = height
self.width = width
def draw(self, win):
pygame.draw.rect(win, (0, 255, 0), (self.x, self.y, self.height, self.width), 1)
你能告诉我怎么走吗?你的环路:
for i in list:
i.y += 60
将在列表
中找到每个对象(请将其重命名为类似我的列表
),并将其y值加60。这并没有您想要的效果,它只是将每个对象移动60个单位。有很多方法可以按照您的意愿来实现这一点,这里有一种:
for n,i in enumerate(my_list): # I have renamed the list here
i.y += 60*n
通过使用
枚举
,您不仅可以得到列表中的每个元素(i
),还可以得到您所在元素的计数(n
)。然后,您可以使用n
变量来确保以不同的量移动不同的对象。这里的列表
对象是什么?请记住,您需要先递增一次,再递增两次,依此类推。list
是一个内置函数。您不应该命名列表对象list
。