在类中调用的pygame.draw.rect()函数不显示矩形

时间:2019-05-15 20:28:38

标签: python pygame

即使循环“ draw-refresh”的顺序正确,下面的代码也不会显示存储在列表中的类中调用的矩形。

while True:

     root.fill((0,200,255))

     for walls in range(len(WallList)):
          WallList[walls]
          print(walls, WallList[walls])

     for event in pygame.event.get():
          if event.type == pygame.QUIT:
                pygame.quit()
                quit()

     pygame.display.update()

我希望在填充根之前绘制矩形,但是根始终是蓝色的(我给的颜色)。

编辑:有一个课程:

class Wall():
     def __init__(self, x, y, thotType):
          global TypeList,camX,camY
          self.x=x
          self.y=y
          self.type=thotType
          if self.type== "Wall": pygame.draw.rect(root,(0,255,255),(x+camX,y+camY,mapmultiplier,mapmultiplier),1)
          if self.type== "Blank": pygame.draw.rect(root,(32,32,32),(x+camX,y+camY,mapmultiplier,mapmultiplier))
          TypeList.append(self.type)

1 个答案:

答案 0 :(得分:1)

您必须在类中添加一个方法,该方法将绘制矩形。

例如

class Wall():
    def __init__(self, x, y, thotType):
        self.x=x
        self.y=y
        self.type=thotType
        TypeList.append(self.type)

    def draw(self):
        if self.type== "Wall":
            pygame.draw.rect(root,(0,255,255),(self.x+camX,self.y+camY,mapmultiplier,mapmultiplier),1)
        if self.type== "Blank":
            pygame.draw.rect(root,(32,32,32),(self.x+camX,self.y+camY,mapmultiplier,mapmultiplier))

然后您可以调用draw方法:

for walls in range(len(WallList)):
    WallList[walls].draw()