簡體   English   中英

如何在pygame中添加一行作為精靈?

[英]How do I add a line as a sprite in pygame?

我想在我的關卡中添加一個網格,它與地形而不是屏幕一致。 我想這樣做的方法是將構成網格的所有線條添加為精靈並將其與地形一起移動,但我無法弄清楚如何將線條表示為圖像。

我自己嘗試這樣做,但沒有成功。

編輯:這是我嘗試過的

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

創建對象:

grid = Grid()

調用類:(在主程序循環中)

grid.draw()

我在嘗試做項目時遇到了類似的問題。 我使用下面的代碼將一條線放到一個表面上,然后將它顯示在我的屏幕上。 我希望這整個功能可以幫到你。

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

我試圖畫一個多邊形。 注釋掉了很可能對你沒用的if語句。 我的所有行都在一個多邊形類對象中。 您可能想要查看pygame.draw.aalines函數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM