¿Cómo agrego una línea como sprite en pygame?

Quiero agregar una cuadrícula a mi nivel que se mantenga con el terreno y no con la pantalla. La forma en que pensé hacerlo es agregar todas las líneas que forman la cuadrícula como sprites y moverlas con el terreno, pero no puedo imaginar cómo representar la línea como una imagen.

Intenté hacerlo yo mismo, pero no tuve éxito.

EDIT: esto es lo que he intentado

class Grid(): def __init__(self): self.grid = pygame.Surface(size) self.grid.set_colorkey((0,0,0)) def draw(self): # DRAW TILE LINES ---------------------------------------------------------- grid_x = 0 grid_y = 0 for i in range(total_level_width // TILE_SIZE): pygame.draw.aaline(self.grid,BLACK,[grid_x,0],[grid_x,total_level_height]) pygame.draw.aaline(self.grid,BLACK,[0,grid_x],[total_level_width,grid_y]) grid_x += TILE_SIZE grid_y += TILE_SIZE # tile test pygame.draw.rect(screen,BLACK,(49*TILE_SIZE,34*TILE_SIZE,TILE_SIZE,TILE_SIZE)) screen.blit(self.grid,(0,0)) 

Creando el objeto:

 grid = Grid() 

Clase de llamada: (en el ciclo principal del progtwig)

 grid.draw() 

Tuve un problema similar mientras intentaba hacer un proyecto. Utilicé el siguiente código para colocar una línea en una superficie y luego borrarlo en mi pantalla. Espero que toda esta función te pueda ayudar.

 def blitBoundary(self): """ helper function to blit boundary on screen """ # create a surface self.boundSurf=pygame.Surface((1024,768)) self.boundSurf.set_colorkey((0,0,0)) """ if not self.boundary.closePoly: (x,y)=pygame.mouse.get_pos() pointList=self.boundary.pointList +[[x,y]] else: pointList=self.boundary.pointList""" if len(pointList)>1: pygame.draw.aalines(self.boundSurf, (255,255,255), self.boundary.closePoly , pointList, 1) self.screen.blit(self.boundSurf,(0,0)) 

Estaba tratando de dibujar un polígono. Comentó la statement if que probablemente no sea útil para usted. Todas mis líneas estaban en un objeto de clase de polígono. Es posible que desee ver en la función pygame.draw.aalines .