web-dev-qa-db-ja.com

Pygameでモニターの解像度を取得する方法?

Pygameでモニターの解像度を取得し、これらの寸法を使用してウィンドウを作成して、プログラムを起動するとモニターの解像度が検出され、ウィンドウがフルスクリーンの画面に自動的に収まるようにできるかどうか疑問に思っています。

現在、ウィンドウを作成するためにpygame.display.set_mode((AN_INTEGER, AN_INTEGER))を使用しています。 pygame.display.Info()を使用してモニターの解像度を含むビデオ情報を取得できることは承知していますが、これらの値を抽出してpygame.display.set_mode() ???で使用するにはどうすればよいですか?

Ilmiontよろしくお願いいたします。

15
Ilmiont

pygame.display.Info()を使用できます:

docs と言う:

current_h、current_w:現在のビデオモード、またはdisplay.set_modeが呼び出される前に呼び出された場合はデスクトップモードの高さと幅。
(current_h、current_wは、SDL 1.2.10以降、およびpygame 1.8.0以降で使用できます)エラーの場合、または古いSDLが使用されている場合は、-1です。1.8.0)

pygame.display.Info()は、属性current_hおよびcurrent_wを持つInfoオブジェクトを作成します。 display.set_modeを呼び出す前にInfoオブジェクトを作成し、次にオブジェクトからdisplay.set_modeおよびcurrent_hを指定してcurrent_wを呼び出します。

例:

infoObject = pygame.display.Info()
pygame.display.set_mode((infoObject.current_w, infoObject.current_h))
29
Mailerdaimon

これが機能するかどうかはわかりませんが、フルスクリーンウィンドウが必要な場合は、以下を使用します。

pygame.display.set_mode((0,0),pygame.FULLSCREEN)

(もちろん、あなたはまだimport pygame)。

4
Hack5

Pygameについてはあまり知りませんが、モジュールwin32apiを使用する方法を次に示します。

from win32api import GetSystemMetrics

width = GetSystemMetrics(0)
height = GetSystemMetrics(1)

更新docs を一見すると、次のようにpygame.display.Infoから取得できるようです:

width, height = pygame.display.Info().current_w, pygame.display.Info().current_h

お役に立てれば!

2
aIKid