赞 0
VIP
好人卡
积分 26
经验
最后登录 2023-5-22
在线时间 365 小时
梦石 0
星屑 2638
在线时间 365 小时
注册时间 2015-12-8
回帖 77
悬赏10 星屑未解决
本帖最后由 冰冷水藍 于 2020-4-1 00:24 编辑
一個比較單純的問題
關於這個添加全螢幕選項的SRD_FullscreenToggleOption.js腳本
運作正常,但在選項中的ON/OFF顯示卻是相反的
例如我用左方向鍵切換到了視窗模式,但顯示的是ON
再用右方向鍵切回全螢幕,顯示的又變OFF
求大神幫忙修正,謝謝
[pre lang="javascript"]/*:
* @plugindesc 全螢幕選項 SRD_FullscreenToggleOption.js
* @author SumRndmDde
*
* @param Option Name
* @desc 選項名稱
* @default 全螢幕
*
* @param Position
* @desc 選項位置
* Choices are: Top, Middle, Bottom
* @default Top
*
* @param Default Value
* @desc 預設值
* true = on false = off
* @default on
*
* @param ersist Default?
* @desc 堅持預設值 (Choices are: true, false)
* @default true
*
* @help
*/
(function() {
var parameters = PluginManager.parameters('SRD_FullscreenToggleOption');
var optionName = String(parameters['Option Name']);
var defaultValue = String(parameters['Default Value']).trim().toLowerCase() === 'true';
var position = String(parameters['Position']).toLowerCase();
var persist = String(parameters['Persist Default?']).trim().toLowerCase() === 'true';
ConfigManager.fullscreen = defaultValue;
Object.defineProperty(ConfigManager, 'fullscreen', {
get: function() {
return !Graphics._isFullScreen();
},
set: function(value) {
if (value) {
Graphics._requestFullScreen(); //執行全螢幕
} else {
Graphics._cancelFullScreen(); //視窗化
}
},
configurable: true
});
var _ConfigManager_makeData = ConfigManager.makeData;
ConfigManager.makeData = function() {
var config = _ConfigManager_makeData.call(this);
config.fullscreen = this.fullscreen;
return config;
};
var _ConfigManager_applyData = ConfigManager.applyData;
ConfigManager.applyData = function(config) {
_ConfigManager_applyData.call(this, config);
this.fullscreen = this.readFullscreen(config, 'fullscreen');
};
ConfigManager.readFullscreen = function(config, name) {
var value = config[name];
if(!persist) {
if (value !== undefined) { //假如已有定義
return value;
} else {
return defaultValue; //返回預設值
}
} else {
return defaultValue; //返回預設值
}
};
var _Window_Options_addGeneralOptions = Window_Options.prototype.addGeneralOptions;
Window_Options.prototype.addGeneralOptions = function() {
_Window_Options_addGeneralOptions.call(this);
if(position === 'middle') {
this.addCommand(optionName, 'fullscreen'); //新增全螢幕選項
}
};
var _Window_Options_makeCommandList = Window_Options.prototype.makeCommandList;
Window_Options.prototype.makeCommandList = function() {
if(position === 'top') {
this.addCommand(optionName, 'fullscreen'); //新增全螢幕選項
}
_Window_Options_makeCommandList.call(this);
};
var _Window_Options_addVolumeOptions = Window_Options.prototype.addVolumeOptions;
Window_Options.prototype.addVolumeOptions = function() {
_Window_Options_addVolumeOptions.call(this);
if(position === 'bottom') {
this.addCommand(optionName, 'fullscreen'); //新增全螢幕選項
}
};
var _Game_Interpreter_pluginCommand = Game_Interpreter.prototype.pluginCommand;
Game_Interpreter.prototype.pluginCommand = function(command, args) {
_Game_Interpreter_pluginCommand.call(this, command, args);
if(command.toLowerCase() === 'togglescreentype') { //假如切換選項
Graphics._switchFullScreen(); //執行全螢幕切換
}
};
})();[/pre]
我来回答