ultimate-angel-zerachiel/www/js/plugins/FPSlimit.js
2024-01-17 11:38:37 -06:00

42 lines
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);
}
}
};
})();