web-dev-qa-db-ja.com

PyGameで表示画面を最大化するにはどうすればよいですか?

私はPythonプログラミングに不慣れで、最近PyGameモジュールでの作業を開始しました。ここに表示画面を初期化する簡単なコードを示します。私の質問は次のとおりです:現在、最大化ボタンは無効になっています。画面のサイズを変更できません。全画面表示と全画面表示を切り替えるにはどうすればよいですか?ありがとう

import pygame, sys
from pygame.locals import *

pygame.init()

#Create a displace surface object
DISPLAYSURF = pygame.display.set_mode((400, 300))

mainLoop = True

while mainLoop:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            mainLoop = False
    pygame.display.update()

pygame.quit()
11

ネイティブ解像度でフルスクリーンになるには、

_DISPLAYSURF = pygame.display.set_mode((0, 0), pygame.FULLSCREEN)
_

ウィンドウのサイズを変更できるようにするには、モードを設定するときに_pygame.RESIZABLE_パラメータを追加します。画面表面のモードは複数回設定できますが、pygame.display.quit()に続けてpygame.display.init()を実行する必要がある場合があります

ここでpygameのドキュメントも確認する必要があります http://www.pygame.org/docs/ref/display.html#pygame.display.set_mode

8
muddyfish

あなたが探しているメソッドは _pygame.display.toggle_fullscreen_ です

または、ほとんどの状況でガイドが推奨するように、_ pygame.display.set_mode()FULLSCREENタグ付きで で呼び出します。

あなたの場合、これは次のようになります

_DISPLAYSURF = pygame.display.set_mode((400, 300), pygame.FULLSCREEN)
_

FULLSCREENの代わりに_pygame.FULLSCREEN_を使用してください。自分のシステムでテストすると、FULLSCREENは解像度を調整せずにウィンドウを最大化しただけですが、_pygame.FULLSCREEN_も解像度を調整します最大化として。)

4
Zenohm

これにより、最大化から初期サイズに切り替えることができます

import pygame, sys
from pygame.locals import *

pygame.init()

#Create a displace surface object
#Below line will let you toggle from maximize to the initial size
DISPLAYSURF = pygame.display.set_mode((400, 300), RESIZABLE)

mainLoop = True

while mainLoop:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            mainLoop = False
    pygame.display.update()

pygame.quit()
2
Tanmaya Meher

次のように、フルスクリーンパラメータをディスプレイ宣言に追加する必要があります。

import pygame, sys
from pygame.locals import *

pygame.init()

#Create a displace surface object
DISPLAYSURF = pygame.display.set_mode((400, 300), FULLSCREEN)

mainLoop = True

while mainLoop:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            mainLoop = False
    pygame.display.update()

pygame.quit()
1
Michael Chav
import pygame, os

os.environ['SDL_VIDEO_CENTERED'] = '1' # You have to call this before pygame.init()

pygame.init()

info = pygame.display.Info() # You have to call this before pygame.display.set_mode()
screen_width,screen_height = info.current_w,info.current_h

これらは、画面/モニターの寸法です。これらを使用するか、それらを減らして、境界線とタイトルバーを除外できます。

window_width,window_height = screen_width-10,screen_height-50
window = pygame.display.set_mode((window_width,window_height))
pygame.display.update()
1
Apostolos