【Godot4】スクリプトでウィンドウモードとフルスクリーンモードを切り替える

ネコニウム研究所

PCを利用したモノづくりに関連する情報や超個人的なナレッジを掲載するブログ

【Godot4】スクリプトでウィンドウモードとフルスクリーンモードを切り替える

2023-3-10 | , ,

Godot4でGDScriptを使ってウィンドウモードとフルスクリーンモードを切り替えたい!

概要

今回の記事では、Godot4でGDScriptを使ってウィンドウモードとフルスクリーンモードを切り替える手順を掲載する。

この記事でのフルスクリーンモードは、ディスプレイの解像度を変えずにウィンドウをディスプレイいっぱいに表示するモードを指す。DirctXでいう排他モードではない。

仕様書

環境

  • Gogot 4.0

手順書

下記はui_cancel(デフォルトではESC)の入力がある度に現在のウィンドウモードを取得して、ウィンドウ表示であればフルスクリーン表示に、フルスクリーン表示であればウィンドウ表示に切り替える例。

func _input(event):
    if Input.is_action_just_pressed("ui_cancel"):
        if DisplayServer.window_get_mode() == DisplayServer.WindowMode.WINDOW_MODE_FULLSCREEN:
            DisplayServer.window_set_mode(DisplayServer.WindowMode.WINDOW_MODE_WINDOWED)
        else:
            DisplayServer.window_set_mode(DisplayServer.WindowMode.WINDOW_MODE_FULLSCREEN)

DisplayServer.window_get_mode()で現在のウィンドウモードを取得する。

DisplayServer.window_set_mode()でウィンドウモードを変更する。
第1引数に列挙型WindowModeを渡すことで任意のウィンドウモードを指定できる。指定できるウィンドウモードは下記参照。

WindowMode メニュー表示 解像度の変更 説明
WINDOW_MODE_WINDOWED あり(オプションで非表示可) なし ウィンドウ表示。
WINDOW_MODE_MINIMIZED なし ウィンドウ表示。最小化。 なし
WINDOW_MODE_MAXIMIZED あり(オプションで非表示可) なし ウィンドウ表示。最大化。
WINDOW_MODE_FULLSCREEN なし なし フルスクリーン表示。
WINDOW_MODE_EXCLUSIVE_FULLSCREEN なし あり フルスクリーン表示。DirectXでいう排他モード。

まとめ(感想文)

WINDOW_MODE_EXCLUSIVE_FULLSCREENみたいな排他モードって、昔はゲームではよく疲れてたんだけども。デスクトップのアイコンがぐちゃぐちゃになったり、マルチディスプレイ環境だとウィンドウの配置がぐちゃぐちゃになったりすることもあってなのか最近のゲームでは実装されてないものも散見される今日この頃。

個人的には現在のゲームアプリでは排他モードは実装なくても良いと思ふ。

引用・参考文献