apatheticangel/www/js/plugins/FPSlimit.js
2023-08-16 11:10:37 -05:00

39 lines
No EOL
1.1 KiB
JavaScript

//=============================================================================
// FPSLimit.js
//=============================================================================
/*:
* @plugindesc Limits game refresh rate
* @author ocean pollen
*
* @param FPS Limit
* @desc For a 20FPS limit, set this to 20, etc.
* Default: 60
* @default 60
*
* @help This plugin does not provide plugin commands.
*/
; (function () {
var desiredFPS = Number(PluginManager.parameters('FPSLimit')['FPS Limit']),
frameLimit = 1000 / desiredFPS,
nextUpdate = 0,
timeout = null
SceneManager.requestUpdate = function () {
if (!this._stopped) {
var now = Date.now()
if (now >= nextUpdate) {
if (timeout) { clearTimeout(timeout); timeout = null }
nextUpdate = now + frameLimit
requestAnimationFrame(this.update.bind(this))
} else {
var that = this
timeout = setTimeout(function () {
nextUpdate = Date.now() + frameLimit;
requestAnimationFrame(that.update.bind(that))
}, nextUpdate - now)
}
}
}
})()