I wondered why, so I looked into the source code.
You are doing filesystem input/output every frame, which is not a good thing.
Code: Select all
function love.update(dt)
...
if player.score > tonumber(player.highscore) then
player.highscore = player.score
lf.write("highscores.lua", "player.highscore\n=\n" .. player.score)
lf.read("highscores.lua")
end
lf.read("highscores.lua")
lf.read("coin.lua")
...
Ideally, you shouldn't do any filesystem operations in love.update(). It would be enough to update the high score when the player dies, for example.