Я создал несколько поверхностей, которые будут выполнять роль заполнителей для моих элементов пользовательского интерфейса, одной из которых является «Игровое окно».Персонаж My Player создается с помощью модуля Freetype Font и отображается на целевой поверхности.Целевая поверхность заполняется каждый цикл, чтобы очистить «рамку», но символ не будет отображаться.Если заливка отсутствует, символ отображается, но дублирует каждый «кадр».Я знаю, что символ нарисован на правильной поверхности, так как начало координат (0, 0), и нарисовано со смещением, так как поверхность сама смещена от экрана.
# Set up various surfaces for UI containers
GAME_SURFACE = pygame.Surface((1350, 755))
GAME_SURFACE_RECT = pygame.Surface.get_rect(GAME_SURFACE)
STATS_SURFACE = pygame.Surface((1350, 125))
CHAR_DETAILS_SURFACE = pygame.Surface((570, 540))
ENEMY_DETAILS_SURFACE = pygame.Surface((570, 540))
LOG_SURFACE = pygame.Surface((1350, 200))
# Initialise Objects
PLAYER = Entity(0, 0, PLAYER_CHAR, WHITE, GAME_SURFACE)
...
# --- Screen-clearing code goes here
SCREEN.fill(BLACK)
GAME_SURFACE.fill(BLACK)
STATS_SURFACE.fill(RED)
CHAR_DETAILS_SURFACE.fill(WHITE)
ENEMY_DETAILS_SURFACE.fill(GREEN)
LOG_SURFACE.fill(RED)
# --- Drawing code should go here
SCREEN.blit(STATS_SURFACE, (0, 0))
SCREEN.blit(CHAR_DETAILS_SURFACE, (1350, 0))
SCREEN.blit(ENEMY_DETAILS_SURFACE, (1350, 540))
SCREEN.blit(LOG_SURFACE, (0, 880))
SCREEN.blit(GAME_SURFACE, (0, 125))
PLAYER.draw()