2018/06/05(火) [n年前の日記]
#1 [love2d] love2dを触ってる
love2dを久々に触ってるところ。
◎ Windows上でのwait処理。 :
love2d 11.1 を触ってるけど、love2d 0.10.2 と比べて少し仕様が変わってることに気づいた。0.10.2 の時は、Windows上で動かすと vsync を見てくれなくて、FPSを取得すると数百FPSという物凄い値になってたのだけど。11.1 はちゃんと vsync を見てくれるようになったようで、おかげで Windowsの時だけ入れていた wait処理を入れなくても済むようになった。たぶん。
具体的には…。以前は以下のような処理を入れてたけれど。
love2d 11.1 なら、要らない。
vsync をチェックするかしないかは、main.lua と同じ階層に conf.lua というファイルを作って、その中で指定する。
_Config Files - LOVE
それはともかく関連情報をググっていたら、そもそも Windows10 の大型アップデートで vsync をチェックしない状態に陥っていたという話を見かけた。
_Windows 10 creators update kills vsync : love2d
ということは、またそのうち、Windows10 の大型アップデートで、「love2d が vsync を見てくれねえ」と困る事態が発生するのだろうか…。
それと、今時は 120fps で表示ができるディスプレイも存在するようだけど、その場合 love2d で vsync を有効にすると 120fps で動いてしまったりするのだろうか…? 60FPSを前提にしてソースを書いちゃうと困ったことになりそうだな…。
具体的には…。以前は以下のような処理を入れてたけれど。
function love.load() min_dt = 1 / 60 next_time = love.timer.getTime() end function love.update(dt) next_time = next_time + min_dt end function love.draw() if love.system.getOS() == "Windows" then -- wait local cur_time = love.timer.getTime() if next_time <= cur_time then next_time = cur_time else love.timer.sleep(next_time - cur_time) end end end
love2d 11.1 なら、要らない。
function love.load() end function love.update(dt) end function love.draw() end
vsync をチェックするかしないかは、main.lua と同じ階層に conf.lua というファイルを作って、その中で指定する。
function love.conf(t) t.window.title = "Tilemap Test 02" t.version = "11.1" t.window.width = 640 t.window.height = 480 t.window.vsync = 1 t.console = true -- t.window.fullscreen = true -- t.window.fullscreentype = "exclusive" endlove2d 0.10.2 の時は t.window.vsync = true と指定してたけど、love2d 11.1 は t.window.vsync = 1 と指定する。公式Wikiでも、「11.1 からは 1/0 で指定するように変わったよ」と書いてあった。…そこは変える必要があるのだろうかと疑問を持たないでもないけど。love2d の仕様変更方針はよく分からない。
_Config Files - LOVE
それはともかく関連情報をググっていたら、そもそも Windows10 の大型アップデートで vsync をチェックしない状態に陥っていたという話を見かけた。
_Windows 10 creators update kills vsync : love2d
ということは、またそのうち、Windows10 の大型アップデートで、「love2d が vsync を見てくれねえ」と困る事態が発生するのだろうか…。
それと、今時は 120fps で表示ができるディスプレイも存在するようだけど、その場合 love2d で vsync を有効にすると 120fps で動いてしまったりするのだろうか…? 60FPSを前提にしてソースを書いちゃうと困ったことになりそうだな…。
[ ツッコむ ]
以上です。