Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/351.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
Python 困惑于为什么PyGame显示';那是黑屏_Python_Screen_Pygame - Fatal编程技术网

Python 困惑于为什么PyGame显示';那是黑屏

Python 困惑于为什么PyGame显示';那是黑屏,python,screen,pygame,Python,Screen,Pygame,所以,在我决定问这个问题之前,我做了一些研究,看看我的问题是什么,发现了这个问题:然而,这并不是很有帮助,因为我没有和这个人一样的问题。我肯定知道我的PyGame并没有过时或者类似的东西,因为我有一个以前版本的代码在工作 每次运行代码时,我都会得到一个黑屏 这是我的代码(有点长,对不起): 因此,我基本上是试图在**class Screen()**中显示**class Pane()**中的窗格(现在是一个),但是就像我之前在运行代码时说的那样,我得到了一个黑屏。但由于某些原因,鼠标坐标跟踪器仍然

所以,在我决定问这个问题之前,我做了一些研究,看看我的问题是什么,发现了这个问题:然而,这并不是很有帮助,因为我没有和这个人一样的问题。我肯定知道我的PyGame并没有过时或者类似的东西,因为我有一个以前版本的代码在工作

每次运行代码时,我都会得到一个黑屏

这是我的代码(有点长,对不起):


因此,我基本上是试图在
**class Screen()**
中显示
**class Pane()**
中的窗格(现在是一个),但是就像我之前在运行代码时说的那样,我得到了一个黑屏。但由于某些原因,鼠标坐标跟踪器仍然可以工作。非常感谢您的帮助。

好的,现在我已经解决了我的问题。(啊哈,新手错误)。 因此,在
类窗格()的
\uuuu init\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuoself)
区域中,我添加了

    def __init__(self):
        self.Screen = pygame.display.set_mode((1000,600), 0, 32)
        self.font = pygame.font.SysFont('Arial', 25)
        self.Screen.fill((white))

我不确定这是否是解决问题的最佳方法,但它确实有效。那很好。但是,如果你认为这不是解决问题的好方法,那么请务必教我一个更好的方法来解决我的问题。

好的,现在我已经解决了我的问题。(啊哈,新手错误)。 因此,在
类窗格()的
\uuuu init\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuoself)
区域中,我添加了

    def __init__(self):
        self.Screen = pygame.display.set_mode((1000,600), 0, 32)
        self.font = pygame.font.SysFont('Arial', 25)
        self.Screen.fill((white))

我不确定这是否是解决问题的最佳方法,但它确实有效。那很好。但是,如果您认为这不是解决问题的好方法,那么请务必教我一种更好的方法来解决我的问题。

问题在于您的代码组织

您有树时间
pygame.display.set\u mode()
。每次调用
pygame.display.set_mode()
都会破坏以前的
屏幕
,创建新的
屏幕
,新屏幕始终为黑色

您应该只创建一次
屏幕
,并将其作为参数发送给其他类

def addPane(self, textToDisplay):
    myPane = Pane(self.screen) # send screen to Pane
    myPane.drawPane(textToDisplay)

# ...

class Pane():

    def __init__(self, screen):
        self.Screen = screen # get screen 
并从
clear()
函数中删除
pygame.display.set_mode()
-在程序末尾使用一个屏幕


现在我可以看到带有“hello”的窗格

问题在于代码组织

您有树时间
pygame.display.set\u mode()
。每次调用
pygame.display.set_mode()
都会破坏以前的
屏幕
,创建新的
屏幕
,新屏幕始终为黑色

您应该只创建一次
屏幕
,并将其作为参数发送给其他类

def addPane(self, textToDisplay):
    myPane = Pane(self.screen) # send screen to Pane
    myPane.drawPane(textToDisplay)

# ...

class Pane():

    def __init__(self, screen):
        self.Screen = screen # get screen 
并从
clear()
函数中删除
pygame.display.set_mode()
-在程序末尾使用一个屏幕

现在我可以看到带有“hello”的窗格