我正在尝试使用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
我想发生的是两个单元之间的壁被正确清除,没有任何毛刺。