rpgmakermv插件(1)screenfull.js與Fullscreen.js


本文分析游戲的全屏化處理。

 

引入:玩家在不同情景下可能會選擇全屏游戲或窗口化游戲,所以作為開發者,應該在設置中加入全屏與否的選項。

 

兩種插件: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; }; })()

 

優:無論全屏還是窗口化,界面顯示都是正常。

缺點:用戶不可控

 

 

將兩者結合起來,就是比較完美的解決方案了。

關於結合版,將在下文揭曉。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM