Wie füge ich eine Zeile als Sprite in Pygame hinzu?

Ich möchte ein Raster auf meine Ebene hinzufügen, die mit dem Gelände und nicht dem Bildschirm bleibt. Die Art, wie ich dachte, es zu tun, ist, alle Linien hinzuzufügen, die das Raster als Spritzen bilden und sie mit dem Gelände bewegen, aber ich kann nicht herausfinden, wie man die Linie als Bild darstellt.

Ich habe versucht, das selbst zu tun, aber hatte keinen Erfolg.

EDIT: Hier ist was ich versucht habe

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)) 

Erstellen des Objekts:

 grid = Grid() 

Anrufklasse: (in der Hauptprogrammschleife)

 grid.draw() 

  • Versuchen, über Sprite zu ziehen oder Bildpyglet zu wechseln
  • Pygame - Sprite Bewegung verursacht Schichten
  • Wie benutzt man Sprite Collide in Pygame
  • Kann nicht ausziehen () sprites in pyglet
  • Animiertes Sprite aus wenigen Bildern
  • Außerhalb des Gedächtnisses bei der Verwendung von pygame.transform.rotate
  • PYGAME macht einen Sprite in die Richtung, in die er steht
  • Wie man Funktionen von Sprites in Gruppen anruft?
  • One Solution collect form web for “Wie füge ich eine Zeile als Sprite in Pygame hinzu?”

    Ich hatte ein ähnliches Problem, während ich versuchte, ein Projekt zu machen. Ich habe den folgenden Code benutzt, um eine Linie auf eine Oberfläche zu bekommen und dann auf meinen Bildschirm zu putzen. Ich hoffe, diese ganze Funktion könnte dir helfen.

     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)) 

    Ich habe versucht, ein Polygon zu zeichnen. Das kommentierte die if-Anweisung, die höchstwahrscheinlich nicht für dich nützlich wäre. Alle meine Zeilen waren in einem Polygon-Klassenobjekt. Vielleicht möchten Sie in pygame.draw.aalines Funktion schauen.

    Python ist die beste Programmiersprache der Welt.