查看: 4173|回复: 0

[原创发布] 快速测试,你一定会需要的(测试测成狗)

[复制链接]
梦石
2
星屑
5550
在线时间
2566 小时
注册时间
2012-2-9
回帖
947

开拓者

发表于 2017-4-18 22:00:17 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
本帖最后由 garfeng 于 2017-4-19 23:35 编辑

多显示器或多工作视窗的福利。

在编辑器里点击保存按钮或ctrl+s后,即可在游戏测试窗口看到变化。

演示地址::https://pan.baidu.com/s/1bBj2kY

快速测试

功能:
编辑器点击保存按钮或ctrl+s后,游戏自动重新运行(窗口保持开启)

重新运行时自动读取最近保存的存档,没有存档则从头开始

游戏测试窗口:
ctrl+s 保存当前状态
ctrl+d 删除已经保存的存档
ctrl+r 重新载入游戏(会读取最新的存档)

ctrl+d 然后 ctrl + r 则可以从头测试。


使用方法:

下方代码存储为fastTest.js,放到js/plugins目录下,在编辑器中调用。

点击展开代码

[pre lang="javascript"]

//=============================================================================
// fastTest.js
//=============================================================================

/*:
*
* @plugindesc 快速测试
* 编辑界面点击保存后,游戏自动重新运行(窗口保持开启)
*
* @help 快速测试
* 编辑界面点击保存后,游戏自动重新运行(窗口保持开启)
* 重新运行时load最近保存的存档,没有存档则从头开始
* -------------------------
* 游戏测试时:
* ctrl+s 保存存档
* ctrl+d 删除存档
* ctrl+r 重新载入游戏
*
* @author garfeng
*
* @param save Id
* @desc 存档id (即你在测试游戏时,按下ctrl+s时保存的存档id)
* @default 1
*
*/

(function() {

  var param = PluginManager.parameters("fastTest");
  var saveId = parseInt(param["save Id"]);
  var fs = require('fs');
  var path = require('path');

  var base = path.dirname(process.mainModule.filename);
  var dataPath = path.join(base, 'data/');

  var GFWatch = {};

  var REG = /Map([0-9]+)\.json/ig;

  var watched = false;

  Scene_Boot.prototype.start = function () {

    Scene_Base.prototype.start.call(this);
    SoundManager.preloadImportantSounds();
    if (DataManager.isBattleTest()) {
      DataManager.setupBattleTest();
      SceneManager.goto(Scene_Battle);
    } else if (DataManager.isEventTest()) {
      DataManager.setupEventTest();
      SceneManager.goto(Scene_Map);
    } else {
      this.checkPlayerLocation();
      GFWatch.start();
      GFWatch.startWatch();
    }
    this.updateDocumentTitle();
  };



  GFWatch.update = function (){
    if(GFWatch.needUpdate) {
      console.log("run reload now");
      GFWatch.reload();
      GFWatch.needUpdate = false;
    }
  }


  GFWatch.startWatch = function () {
    if(!watched){

      setInterval(GFWatch.update,500);

      fs.watch(dataPath, function (e, file) {
        GFWatch.needUpdate = true;
      });
      watched = true;
    }

  };

  GFWatch.start = function(){
    DataManager.setupNewGame();
    if (StorageManager.exists(saveId)) {
      DataManager.loadGame(saveId)
      $gamePlayer.reserveTransfer($gameMap.mapId(), $gamePlayer.x, $gamePlayer.y);
      $gamePlayer.requestMapReload();
    }
    SceneManager.goto(Scene_Map);

  };

  GFWatch.reload = function(){
    SceneManager.goto(Scene_Boot);
  }

  GFWatch.saveState = function () {
    DataManager.saveGame(saveId);
  };

  GFWatch.deleteState = function () {
    StorageManager.removeLocalFile(saveId);
  };

  GFWatch.deleteStateAndReload = function(){
    GFWatch.deleteState();
    GFWatch.needUpdate = true;

  };

  /**
   * @static
   * @method _onKeyDown
   * @param {KeyboardEvent} event
   * @private
   */
  Graphics._onKeyDown = function (event) {
    if (!event.ctrlKey && !event.altKey) {
      switch (event.keyCode) {
        case 113:   // F2
          event.preventDefault();
          this._switchFPSMeter();
          break;
        case 114:   // F3
          event.preventDefault();
          this._switchStretchMode();
          break;
        case 115:   // F4
          event.preventDefault();
          this._switchFullScreen();
          break;

      }
    } else {
      switch (event.keyCode) {
        case 83:
          GFWatch.saveState();
          break;
        case 68:
          GFWatch.deleteState();
          break;
        case 82:
          GFWatch.needUpdate = true;
          break;
      }
    }
  };
})();

[/pre]

评分

参与人数 4星屑 +53 收起 理由
952193683 + 10 精品文章
白嫩白嫩的 + 10 塞糖
mikeyh01 + 1 塞糖
百里_飞柳 + 32 触飞

查看全部评分

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部