rpgmakermv插件(1)screenfull.js與Fullscreen.js
阿新 • • 發佈:2018-02-23
cancel wid 就是 開發者 chan sch desc 選擇 log
本文分析遊戲的全屏化處理。
引入:玩家在不同情景下可能會選擇全屏遊戲或窗口化遊戲,所以作為開發者,應該在設置中加入全屏與否的選項。
兩種插件:screenfull.js與Fullscreen.js
1.screenfull
// MV 1.5.0 for Win7 - 32位
var _CmdName = ‘窗口模式‘;// 指令名稱
var _CmdSymbol = ‘fullScreen‘;// 指令標識
ConfigManager[_CmdSymbol] = false;//初始化指令狀態
/*--- 啟動自檢 ---*/
var _SBS = Scene_Boot.prototype.start;
Scene_Boot.prototype.start = function() {
var value = ConfigManager[_CmdSymbol];
Graphics._changeScreen(value);
_SBS.call(this);
};
/*--- 選項處理 ---*/
Window_Options.prototype.makeCommandList = function() {
this.addGeneralOptions();
this.addCommand(_CmdName, _CmdSymbol);//<<<
this.addVolumeOptions();
};
/*--- 觸發處理 ---*/
var _WOPOK = Window_Options.prototype.processOk;
Window_Options.prototype.processOk = function() {
_WOPOK.call(this);
var index = this.index();
var symbol = this.commandSymbol(index);
var value = this.getConfigValue(symbol);
if(symbol == _CmdSymbol){
Graphics._changeScreen(value);
}
};
/*--- 切屏處理---*/
Graphics._changeScreen = function(state) {
if (state) {
this._requestFullScreen();
} else {
this._cancelFullScreen();
}
};
/*--- 記錄處理 ---*/
var _CMMD = ConfigManager.makeData;
ConfigManager.makeData = function() {
var config = _CMMD.call(this);
config[_CmdSymbol] = ConfigManager[_CmdSymbol];
return config;
};
var _CMAD = ConfigManager.applyData;
ConfigManager.applyData = function(config) {
_CMAD.call(this, config);
ConfigManager[_CmdSymbol] = this.readFlag(config, _CmdSymbol);
};
優:簡單快捷,
缺點:進入遊戲會發現遊戲世界的寬高還是窗口化時的,兩邊會出現黑邊。
2.Fullscreen
//=============================================================================
// Fullscreen.js
//=============================================================================
/*:
* @plugindesc Starts the game in fullscreen
* @author Christian Schicho
*
* @help
*/
;(function() {
function extend(obj, name, func) {
var orig = obj.prototype[name]
obj.prototype[name] = function() {
orig.call(this)
func.call(this)
}
}
extend(Scene_Boot, ‘start‘, function() {
Graphics._switchFullScreen();
})
var _Scene_Base_create = Scene_Base.prototype.create;
Scene_Base.prototype.create = function() {
_Scene_Base_create.call(this);
Graphics.width = 1280;
Graphics.height = 720;
Graphics.boxHeight = 720;
Graphics.boxWidth = 1280;
};
})()
優:無論全屏還是窗口化,界面顯示都是正常。
缺點:用戶不可控
將兩者結合起來,就是比較完美的解決方案了。
關於結合版,將在下文揭曉。
rpgmakermv插件(1)screenfull.js與Fullscreen.js