如何在不使用fill方法的情况下删除行?

时间:2019-06-27 13:00:33

标签: python-3.x

我正在尝试使用Pygame制作迷宫生成器作为图形,但是我不知道如何移除细胞壁。因为使用.fill方法再次填充屏幕会使屏幕出现毛刺。那么还有其他方法可以删除这些行吗?

def draw(self):
    if self.sides[0]:
       pygame.draw.line(DISPLAY, (255, 255, 255), (self.x, self.y), (self.x + 
                                                            CellSize, self.y))
    if self.sides[1]:
       pygame.draw.line(DISPLAY, (255, 255, 255), (self.x, self.y + CellSize), 
                                       (self.x + CellSize, self.y + CellSize))
    if self.sides[2]:
       pygame.draw.line(DISPLAY, (255, 255, 255), (self.x, self.y), (self.x, 
                                                           self.y + CellSize))
    if self.sides[3]:
       pygame.draw.line(DISPLAY, (255, 255, 255), (self.x + CellSize, self.y), 
                                       (self.x + CellSize, self.y + CellSize))

这是我的代码中绘制线条的部分。 在绘制所有单元格的部分中调用该方法:

    def draw(self):
        global current
        for i in range(0, Colums):
            for j in range(0, Rows):
                cell = Cell(j, i)
                grid.append(cell)
                cell.draw()
        current = grid[0]
        pygame.display.update()

这是我用来移除墙的算法的主要代码。这部分位于while循环中。

    def main(self):
        global current
        current.visited = True
        current.visit()
        self.next = current.neighbour_check()
        if self.next:
            current.remove_walls(self.next)
            current.draw()
            self.next.draw()
            self.next.visited = True

            current = self.next

我想发生的是两个单元之间的壁被正确清除,没有任何毛刺。

0 个答案:

没有答案