/ / Migotanie ekranu Pygame - linux, python-2.7, pygame, migotanie

Migotanie ekranu migowego - linux, python-2.7, pygame, migotanie

Jestem całkiem nowy w Pythonie i obecnie próbujęzrób moją pierwszą grę z Pygame. Właśnie zacząłem i miałem problem. Mój ekran migocze na biało (kolor wypełnienia) na czarnym. Próbowałem obniżyć zaznaczenie (nawet do 1), ale to nie pomogło (w rzeczywistości migotało mniej, ale wciąż było widoczne). Próbowałem znaleźć jakąkolwiek pomoc online, ale wszędzie ”display.update / flip used więcej niż raz na cykl ”został zasugerowany jako problem i nie naprawił mojego.

Obecnie korzystam z pudełka Fedory 20 z kartą graficzną Nvidia (i nowymi sterownikami), jeśli problem jest z tym związany.

Mój kod:

import pygame
from pygame.locals import *

class visualisation(object):
def __init__(self):
pygame.init()

pygame.time.Clock().tick()

self.window = pygame.display.set_mode((0, 0), pygame.FULLSCREEN, 0)
pygame.mouse.set_visible(False)
pygame.display.set_caption("MY GAME")

self.background = pygame.Surface(self.window.get_size())
self.background = self.background.convert()
self.background.fill((250, 250, 250))

self.window.blit(self.background, (0, 0))
pygame.display.update()


if __name__ == "__main__":
running = True
while(running):
arcade = visualisation()

for event in pygame.event.get():
if event.type == KEYDOWN:
if event.key == K_ESCAPE:
running = False

pygame.quit()

Z góry dziękuję :)

Odpowiedzi:

0 dla odpowiedzi № 1

Wywołujesz następujące funkcje w pętli:

pygame.init()
pygame.display.set_mode((0, 0), pygame.FULLSCREEN, 0)

Jeśli się nie mylę, tworzy to nową zmienną ekranową, która jest bardzo zła. Prawdopodobnie chciałeś stworzyć nową arkadę na początku gry, zamiast na każdej klatce.

Spróbuj przesunąć go przed pętlą:

running = True
arcade = visualisation()

while(running):
for event in pygame.event.get():
if event.type == KEYDOWN:
if event.key == K_ESCAPE:
running = False