RPG Maker MV 游戏画面卡死的解决方法

发表于 2025-09-22
Game

找到 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 可能会因为计算误差变成负值,就会导致游戏画面卡死,而声音、按键等其他功能却不受影响。