进入全屏时,窗口进入全屏,但颜色不进入。我试过检查它是否在全屏,并用RESIZE属性刷新,但这只适用于在全屏之外调整大小的情况。代码:
import time
import ctypes, pygame
from Game import Character
from pygame.locals import (
K_UP,
K_DOWN,
K_LEFT,
K_RIGHT,
K_ESCAPE,
K_F11,
KEYDOWN,
QUIT
)
print("Starting")
global active
global screen
user32 = ctypes.windll.user32
SCREEN_WIDTH = int(round(user32.GetSystemMetrics(0) / 2, 0))
SCREEN_HEIGHT = int(round(user32.GetSystemMetrics(1) / 2, 0))
timeOne = time.time()
pygame.init()
def Main():
active = True
screen = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT), pygame.RESIZABLE)
pygame.display.set_caption("Test")
print("Done. Complete in ", round(time.time()-timeOne, 2), "seconds.")
while active:
for event in pygame.event.get():
if event.type == pygame.QUIT:
active = False
elif event.type == KEYDOWN:
if event.key == K_ESCAPE:
active = False
elif event.key == K_F11:
if screen.get_flags() & pygame.FULLSCREEN:
pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT))
else:
pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT), pygame.FULLSCREEN)
elif event.type == pygame.VIDEORESIZE:
screenSize = event.size
screen = pygame.display.set_mode(screenSize, pygame.RESIZABLE)
screen.fill((0, 0, 255))
pygame.display.flip()
pygame.quit()
Main()
这是我第一次参加pygame,所以要为任何新手的错误提前道歉
我使用的代码决定了显示器打开窗口时的屏幕尺寸↔ 全屏。我不认为VIDEORESIZE事件是在开关中触发的,因为视频大小实际上没有改变(也许有办法触发它,但我认为不同的全屏和窗口大小有点历史遗留)
这样做的结果是,在切换过程中,显示屏必须重新初始化。下面的程序将在窗口和窗口之间切换↔ F11上的全屏模式,将整个屏幕涂成蓝色。互联网上有一些关于这种切换技术的老代码片段和评论,还有鼠标操作等方面的变化。我发现这些已经不再必要了。。。至少在我的测试系统上(如果需要进一步了解,请告知我们。)
相关问题 更多 >
编程相关推荐