Как стирать Surface?

Рейтинг: -1Ответов: 1Опубликовано: 25.04.2023

мне нужен способ стирать содержимое Surface. Я пробовал использовать метод .fill((0, 0, 0)), но у меня в роли Surface огромная карта, и постоянно закрашивать всю карту не очень, ибо вызывает очень много лагов. Мне нужен другой способ очистить Surface. В ином случае если я это не делаю, то спрайты накладываются на друг-друга. Не знаю, может это понадобиться:

tile_surface = pygame.Surface((tmx_data.width * tmx_data.tilewidth, tmx_data.height * tmx_data.tileheight), pygame.HWSURFACE)
for layer in tmx_data.visible_layers:
    if isinstance(layer, pytmx.TiledTileLayer):
        for x, y, gid, in layer:
            tile = tmx_data.get_tile_image_by_gid(gid)
            if tile:
                tile_surface.blit(tile, (x * tmx_data.tilewidth, y * tmx_data.tileheight))

tile_surface = tile_surface.convert()

Ответы

▲ 0Принят

Решил проблему тем что этот код я добавил как функция и постоянно обновлял в основном цикле, но столкнулся с лагами(хотя, это уже из-за того что у меня ноутбук слабый).