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