/ / Принудително разрешаване на цял екран, което не се съдържа в display.list_modes () - python, pygame

Насилване на цяла екрана, която не се съдържа в display.list_modes () - python, pygame

Правя симулация за училище и се опитвамза да направи pygame създаването на цял екран в собствената ми резолюция. Въпреки това, имам QHD екран (2560x1440), и той не работи правилно. около 300-400 пиксела са отрязани по ръбовете. Това причинява, например, кръг, направен в (200,200), за да бъде напълно невидим. не е в списъка в pygame.display.list_modes ()). Има ли някакъв начин да го принудим да работи? Бих предпочел, ако мога да използвам действителната си резолюция, вместо да увелича 1080p.

Ето кода, който инициализира прозореца:

import pygame
from pygame.locals import *
pygame.init()
w = pygame.display.Info().current_w
h = pygame.display.Info().current_h
S = pygame.display.set_mode((w,h), pygame.FULLSCREEN)

Отговори:

0 за отговор № 1

Ако използвате Windows, уверете се, че сте внастройките на дисплея, които имате, са 100%. Това ще направи вашия текст и всичко по-малко, ако не го имате в момента, но мисля, че прозорците на Pygame са засегнати от този номер по някаква причина.

Вижте по-долу кодовия фрагмент, за да се уверите, че прозорецът ви е правилно мащабен. Вижте също тук.

import pygame
from ctypes import windll

def run():
# Force windows to ignore the display scaling value.
windll.user32.SetProcessDPIAware()

pygame.display.init()

# Make the screen the highest resolution that will fit the screen at 100% scaling.
screen = pygame.display.set_mode(pygame.display.list_modes()[0])

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

pygame.display.flip()

pygame.quit()

if __name__ == "__main__":
run()