39 lines
No EOL
1.1 KiB
JavaScript
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)
|
|
}
|
|
}
|
|
}
|
|
})() |