/ / फ़ुलस्क्रीन रिज़ॉल्यूशन फोर्स जो डिस्प्ले में सम्‍मिलित नहीं है

एक पूर्णस्क्रीन रिज़ॉल्यूशन को मजबूर करें जो display.list_modes () - पायथन, पायगमेम में निहित नहीं है

मैं स्कूल के लिए एक अनुकरण कर रहा हूँ और मैं कोशिश कर रहा हूँpygame बनाने के लिए अपने मूल रिज़ॉल्यूशन में फुलस्क्रीन डिस्प्ले बनाएं। हालाँकि, मेरे पास QHD स्क्रीन (2560x1440) है, और यह ठीक से काम नहीं कर रहा है। जहाँ तक मैं बता सकता हूँ, pygame एक स्क्रीन को सही रिज़ॉल्यूशन पर प्रस्तुत कर रहा है, लेकिन इसे विस्तारित करते हुए इसे बढ़ाया जाता है जैसे कि यह 1080p है, इसलिए किनारों के चारों ओर लगभग 300-400 पिक्सेल काट दिए जाते हैं। यह कारण है, उदाहरण के लिए, एक सर्कल (200,200) को पूरी तरह से अदृश्य होने के लिए प्रदान किया गया है। कुछ शोध के बाद, मैंने सीखा कि यह इसलिए है क्योंकि pygame आधिकारिक तौर पर मेरे संकल्प का समर्थन नहीं करता ( 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

यदि आप विंडोज का उपयोग कर रहे हैं, तो अपने में सुनिश्चित करेंप्रदर्शन सेटिंग आपके पास स्केलिंग सेट पर 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()