I'm trying to draw squares in different colors to fill the screen in pygame.
class Box():
def __init__(self, color, rect):
self.color = color
self.rect = rect
def draw(self, surface):
pygame.draw.rect(surface, self.color, self.rect)
Background class
class Background():
def __init__(self, row, columun, ofset, size, color):
self.row = row
self.columun = columun
self.ofset = ofset
self.size = size
self.color = color
def parse(self):
return self.row * self.columun
def extend(self):
parse = self.parse()
extend = []
for tile in range(parse):
if tile % 2 == 0:
extend.append(Tile(self.color[0],pygame.Rect(self.ofset,self,size,self.size)))
else:
extend.append(Tile(self.color[1],pygame.Rect(self.ofset,self,size,self.size)))
self.ofset[0] += self.size
self.ofset[1] += self.size
return extend
and inside my main loop I'm trying to draw it to the screen
while True:
screen.fill((255,255,255))
background = Background(5#row,10#columun,(0,0)#ofset,30#size,((255,255,255),(0,0,0))#multiple color)
for i in sorted(enumerate(background.extend), reverse=True):
i.draw(display)
Error:
line 71, in <module>
for i in sorted(enumerate(background.extend), reverse=True):
TypeError: 'method' object is not iterable
I am not proficient in object oriented programming. is there any logic error in my code? Thanks for your help.
background.extend()? You forgot to call the function.