RPG Maker MV 游戏画面卡死的解决方法
找到 www ⇒ js ⇒ rpg_core.js 文件中的 Graphics.render 方法,将第一个 if 语句的 === 判断改为 <= 即可。
具体代码片段如下:
Graphics.render = function(stage) {
// 原代码为 if (this._skipCount === 0) {
if (this._skipCount <= 0) {
var startTime = Date.now();
if (stage) {
this._renderer.render(stage);
if (this._renderer.gl && this._renderer.gl.flush) {
this._renderer.gl.flush();
}
}
var endTime = Date.now();
var elapsed = endTime - startTime;
this._skipCount = Math.min(Math.floor(elapsed / 15), this._maxSkip);
this._rendered = true;
} else {
this._skipCount--;
this._rendered = false;
}
this.frameCount++;
};这段代码为游戏画面提供基于设备性能自适应的帧率渲染,当设备性能较差时可通过跳过更多的画面渲染来维持游戏运行。
实际上 _skipCount 可能会因为计算误差变成负值,就会导致游戏画面卡死,而声音、按键等其他功能却不受影响。