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

  • Schiebe-Sprites
  • Verschieben Sie ein Objekt alle paar Sekunden in Pygame
  • Pygame macht ein Sprite Gesicht die Maus
  • Pyglet: Ändern des Bildes einer Sprite-Instanz beim Drücken einer Taste
  • Wie man Funktionen von Sprites in Gruppen anruft?
  • Python pygame blit-Funktion
  • Animiertes Sprite aus wenigen Bildern
  • Pygame: Kollision von Seiten von Sprite
  • 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.