Pygame flicker issue

Viewed 92

When I run pygame 2.0.0.dev6 (SDL 2.0.10, python 3.8.3), there is a very short initial flicker of the pygame window. It looks like this. enter image description here

Then all runs fine.

Code is:

import pygame

#Initiate
pygame.init()

#Game constants
WIDTH = 400
HEIGHT = 300
FPS = 30
color_WHITE = (255, 255, 255)
color_BLACK = (0, 0, 0)
color_RED = (255, 0, 0)
color_GREEN = (0, 255, 0)
color_BLUE = (0, 0, 255)

#Game variables
game_running = True

#Game settings
SCREEN = pygame.display.set_mode((WIDTH, HEIGHT), pygame.DOUBLEBUF)
pygame.display.set_caption('Simple Game')
clock = pygame.time.Clock()

#Sprites: Create group
all_sprites = pygame.sprite.Group()

#Sprites: Create sprites
class Player(pygame.sprite.Sprite):
    def __init__(self, name, color, speed):
        pygame.sprite.Sprite.__init__(self)
        self.image = pygame.Surface((5, 40))
        self.image.fill(color)
        self.rect = self.image.get_rect()
        self.rect.center = (int(WIDTH/2), int(HEIGHT/2))
        self.name = name
        self.speed = speed

    def update(self):
        if self.rect.left == WIDTH:
            self.rect.right = 0
        else:
            self.rect.x += 5 * self.speed
            self.rect.top += self.speed


#Game initiations
player1 = Player('Player1', color_GREEN, 5)
all_sprites.add(player1)
player2 = Player('Player2', color_BLUE, 1)
all_sprites.add(player2)

#Game loop
while game_running:

    #Clock management
    clock.tick(FPS)

    #Clear screen
    SCREEN.fill(color_WHITE)

    #Capture events
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            game_running = False

    #Sprites: update()
    all_sprites.update()

    #Sprites: draw()
    all_sprites.draw(SCREEN)

    #Screen flip
    pygame.display.flip()

pygame.quit()

I checked the other posts related to this matter. From there I added double buffering and avoided duplicity in filpping. using SCREEN = pygame.display.set_mode((WIDTH, HEIGHT), pygame.HWSURFACE | pygame.DOUBLEBUF) also did not help.

How can this flicker be eliminated ?

0 Answers
Related