Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 游戏屏幕闪烁_Linux_Python 2.7_Pygame_Flicker - Fatal编程技术网

Linux 游戏屏幕闪烁

Linux 游戏屏幕闪烁,linux,python-2.7,pygame,flicker,Linux,Python 2.7,Pygame,Flicker,我是Python新手,目前正在尝试使用Pygame制作我的第一个游戏。我刚开始,遇到了一个问题。我的屏幕从白色(填充色)闪烁到黑色。我试图降低滴答声(甚至降到1),但没有效果(实际上,它闪烁的次数减少了,但仍然可见很多)。我试图在网上找到任何帮助,但“display.update/flip在每个周期中使用了不止一次”被认为是一个问题,它并没有解决我的问题 如果问题与此有关,我目前正在运行一款Fedora 20盒,带有Nvidia图形卡(和新司机) 我的代码: import pygame from

我是Python新手,目前正在尝试使用Pygame制作我的第一个游戏。我刚开始,遇到了一个问题。我的屏幕从白色(填充色)闪烁到黑色。我试图降低滴答声(甚至降到1),但没有效果(实际上,它闪烁的次数减少了,但仍然可见很多)。我试图在网上找到任何帮助,但“display.update/flip在每个周期中使用了不止一次”被认为是一个问题,它并没有解决我的问题

如果问题与此有关,我目前正在运行一款Fedora 20盒,带有Nvidia图形卡(和新司机)

我的代码:

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

非常感谢:)

您正在循环中调用以下函数:

pygame.init()
pygame.display.set_mode((0, 0), pygame.FULLSCREEN, 0)
如果我没有弄错的话,这将创建一个非常糟糕的新屏幕变量。 您可能希望在游戏开始时创建一个新的拱廊,而不是在每一帧上

尝试在循环之前移动它:

running = True      
arcade = visualisation()

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

哇,真的解决了!每次我看代码示例时,它都在循环中。但这实际上是有道理的,我为没有意识到这一点感到难过,非常感谢!