A009.conf.luaの基本と活用方法

前章でも記述した通り「conf.lua」によって、画面サイズ等の基本的な内容を設定できます。

 

-- conf.lua

function love.conf(t)
	t.window.width = 640
	t.window.height = 480
end

 

詳細は、公式のwikiで確認できます。

 

https://www.love2d.org/wiki/Config_Files

 

何も設定しなければ、にはどのようなものが入っているかを確認してみましょう。

 

-- conf.lua
function love.conf(t)
    t.identity = nil                    -- The name of the save directory (string)
    t.version = "0.10.1"                -- The LÖVE version this game was made for (string)
    t.console = false                   -- Attach a console (boolean, Windows only)
    t.accelerometerjoystick = true      -- Enable the accelerometer on iOS and Android by exposing it as a Joystick (boolean)
    t.externalstorage = false           -- True to save files (and read from the save directory) in external storage on Android (boolean) 
    t.gammacorrect = false              -- Enable gamma-correct rendering, when supported by the system (boolean)
 
    t.window.title = "Untitled"         -- The window title (string)
    t.window.icon = nil                 -- Filepath to an image to use as the window's icon (string)
    t.window.width = 800                -- The window width (number)
    t.window.height = 600               -- The window height (number)
    t.window.borderless = false         -- Remove all border visuals from the window (boolean)
    t.window.resizable = false          -- Let the window be user-resizable (boolean)
    t.window.minwidth = 1               -- Minimum window width if the window is resizable (number)
    t.window.minheight = 1              -- Minimum window height if the window is resizable (number)
    t.window.fullscreen = false         -- Enable fullscreen (boolean)
    t.window.fullscreentype = "desktop" -- Choose between "desktop" fullscreen or "exclusive" fullscreen mode (string)
    t.window.vsync = true               -- Enable vertical sync (boolean)
    t.window.msaa = 0                   -- The number of samples to use with multi-sampled antialiasing (number)
    t.window.display = 1                -- Index of the monitor to show the window in (number)
    t.window.highdpi = false            -- Enable high-dpi mode for the window on a Retina display (boolean)
    t.window.x = nil                    -- The x-coordinate of the window's position in the specified display (number)
    t.window.y = nil                    -- The y-coordinate of the window's position in the specified display (number)
 
    t.modules.audio = true              -- Enable the audio module (boolean)
    t.modules.event = true              -- Enable the event module (boolean)
    t.modules.graphics = true           -- Enable the graphics module (boolean)
    t.modules.image = true              -- Enable the image module (boolean)
    t.modules.joystick = true           -- Enable the joystick module (boolean)
    t.modules.keyboard = true           -- Enable the keyboard module (boolean)
    t.modules.math = true               -- Enable the math module (boolean)
    t.modules.mouse = true              -- Enable the mouse module (boolean)
    t.modules.physics = true            -- Enable the physics module (boolean)
    t.modules.sound = true              -- Enable the sound module (boolean)
    t.modules.system = true             -- Enable the system module (boolean)
    t.modules.timer = true              -- Enable the timer module (boolean), Disabling it will result 0 delta time in love.update
    t.modules.touch = true              -- Enable the touch module (boolean)
    t.modules.video = true              -- Enable the video module (boolean)
    t.modules.window = true             -- Enable the window module (boolean)
    t.modules.thread = true             -- Enable the thread module (boolean)
end

英語ばかりで、判りづらいですが……重要なのをピックアップしていきますので、安心してください!

 

-- conf.lua
function love.conf(t)
    t.window.title = "Untitled"        -- The window title (string)
end

これは、タイトルです、変更すればウィンドウにUntitledと出ていたのが変わります!

さて、日本語用のプログラムの話をここらでしておきましょう。

ためしに、Untitledの部分を日本語にしてみてください。

 

-- conf.lua
function love.conf(t)
    t.window.title = "ハローワールド"
end

保存して動かしてみると……文字化けしましたね……。

まさか……日本語が使えない?と、悲しい気分にならなくても大丈夫です。

この現象を引き起こしたのは「文字コードが違うため」です。

一般的なWindowsで保存されたテキストは「Shift-JIS(ANSI)」という文字コードとなっています。

LOVEで使用できる文字コードは「Utf-8」なので、合わせてあげることによって、文字化けしなくなるのです!

 

これには、ちょっとした工夫が必要です。

「メモ帳」で開いたときの手順を例に説明します。

「conf.lua」を開いている状態で……

ファイル(F)(タグ)→名前を付けて保存→

と開くと、「名前を付けて保存」ウィンドウが開きます。

ウィンドウの下部分に「文字コード(E)」の項目がありますね!

この項目は通常であれば「ANSI」になっているので、逆三角を押し「UTF-8」を選択、保存してください。

 

これで「UTF-8」の文字コードのファイルになりました!

動かして、プログラムのタイトルが「ハローワールド」となっているか確認してください!

今後、文字化けしたのなら、文字コードを確認してください。

 

-- conf.lua
function love.conf(t)
    t.window.icon = "Player.bmp" -- ファイル名を指定
end

アイコンを設定します。画像ファイルを直接指定します!

そして、何故かしら、拡張子が(.ico)のものを利用できない気がします……。

 

-- conf.lua
function love.conf(t)
    t.window.width = 800               -- The window width (number)
    t.window.height = 600              -- The window height (number)
    t.window.borderless = false        -- Remove all border visuals from the window (boolean)
    t.window.resizable = false         -- Let the window be user-resizable (boolean)
    t.window.minwidth = 1              -- Minimum window width if the window is resizable (number)
    t.window.minheight = 1             -- Minimum window height if the window is resizable (number)
    t.window.fullscreen = false        -- Enable fullscreen (boolean)
    t.window.fullscreentype = "normal" -- Standard fullscreen or desktop fullscreen mode (string)
end

ウィンドウのサイズ関連です。

width、heightは、前章で説明しましたね。基本的には16の倍数が好ましいです。

また、4:3の比率を維持しないとフルスクリーンに対応できないかもです。

borderlessをtrueにすると、ウィンドウ枠が無くなって格好良くなります、でも×ボタンも消えるので工夫が必要です。

resizableをtrueにすると、リサイズ可能なウィンドウになります。

minwidth、minheightはリサイズ時の最小の大きさを指定できます。

fullscreenをtrueにするとフルスクリーンになります。

fullscreentypeは、fullscreenをtrueにした場合に、"normal"か"desktop"を指定できます。

normalは指定サイズを維持してフルスクリーン、desktopは、デスクトップサイズにウィンドウが広がりフルスクリーンとなります。

 

-- conf.lua
function love.conf(t)
    t.console = false                  -- Attach a console (boolean, Windows only)
end

コンソール画面を表示するかを指定します。

開発時にコンソール画面を有効にすると、デバッグ出来て便利です!

では、試しにコンソールを表示してみましょう。

 

-- conf.lua
function love.conf(t)
    t.console = true
end

「conf.lua」の中にこのように記述したら、実行してみましょう。

実行したプログラムとともに「LOVE Console」という真黒なウィンドウが出ましたね!

ソースの方で、デバッグ情報を書かなければ、このウィンドウには何も表示されません。

試しに、キーボードの情報をコンソール画面に出力するものを作ってみましょう。

 

-- main.lua

function love.keypressed(key, isrepeat)
	-- ■キーが押された!
	print(key)
end

実行後に、試しにキーボードを入力してみてください!

通常の画面には何も表示されませんが、コンソール画面には対応するキーが表示されるはずです。

たったこの数行で、キーボードが押されたものが何であるかをデバッグ出来ます。

printを使ってコンソール画面に出力していくと、様々なテストが可能になるので、活用してみてください!