mieki256's diary



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処理を入れなくても済むようになった。たぶん。

具体的には…。以前は以下のような処理を入れてたけれど。
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"
end
love2d 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を前提にしてソースを書いちゃうと困ったことになりそうだな…。

以上です。

過去ログ表示

Prev - 2018/06 - Next
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project