Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.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
User interface 在没有窗口/GUI的情况下运行Pygame_User Interface_Window_Pygame_Surface - Fatal编程技术网

User interface 在没有窗口/GUI的情况下运行Pygame

User interface 在没有窗口/GUI的情况下运行Pygame,user-interface,window,pygame,surface,User Interface,Window,Pygame,Surface,是否可以在不创建pygame窗口、界面或GUI的情况下运行pygame? 我想利用某些pygame功能,但我不希望出现GUI 例如,除非我在pygame中设置了一个窗口,否则此函数将无法工作 running = True def mainloop(): while True: for event in pygame.event.get(): if ( event.type == pygame.QUIT ) or \ ( event.type == py

是否可以在不创建pygame窗口、界面或GUI的情况下运行pygame? 我想利用某些pygame功能,但我不希望出现GUI

例如,除非我在pygame中设置了一个窗口,否则此函数将无法工作

running = True

def mainloop():
while True:

    for event in pygame.event.get():
        if ( event.type == pygame.QUIT ) or \
        ( event.type == pygame.KEYDOWN and \
        ( event.key == pygame.K_ESCAPE) ):
            running = False
            print "quit"
            pygame.quit()

        if event.type == pygame.KEYDOWN:
            if event.key == pygame.K_RETURN:
                print "working"
是的,你可以

import pygame

pygame.init()
while 1:
    print pygame.time.get_ticks()
    pygame.time.wait(10)

这将为您提供pygame启动后没有GUI弹出的时间(毫秒)

DrevanTronder是正确的,但他没有正确回答这个问题,因为您正在询问如何在没有GUI的情况下在pygame中执行事件,如您的示例编码所示

这是不可能的。运行Pygame程序时,它仅在选择Pygame窗口时检测事件。如果没有Pygame窗口,则没有可选择的内容,因此事件将不起作用。以下内容直接取自Pygame文档:

如果显示器尚未初始化且未设置视频模式,则事件队列将无法正常工作

但是,当然,如果你不是专门谈论事件处理,那么德万特隆德是正确的;您只需使用“import pygame”导入模块,并使用“pygame.init()”初始化它


希望这有帮助

如果您正在运行Linux,则可以使用

基本上,Xvfb“捕获”所有与显示相关的计算,并在内存中执行这些计算,而无需将其放到显示器上

它可能不适合您的目的,这取决于您的操作系统的行为。仅当PyGame窗口是活动窗口时,在PyGame中捕获关键点才有效,但如果您无法在此处设置活动窗口,则如果没有其他解决方法,这可能无法工作