设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 3902|回复: 8

[有事请教] 請幫忙修正此全螢幕腳本顯示ON/OFF相反的問題

[复制链接]

Lv3.寻梦者

梦石
0
星屑
2637
在线时间
365 小时
注册时间
2015-12-8
帖子
104
发表于 2020-4-1 00:12:28 | 显示全部楼层 |阅读模式
10星屑
本帖最后由 冰冷水藍 于 2020-4-1 00:24 编辑

一個比較單純的問題
關於這個添加全螢幕選項的SRD_FullscreenToggleOption.js腳本
運作正常,但在選項中的ON/OFF顯示卻是相反的

4343.jpg

例如我用左方向鍵切換到了視窗模式,但顯示的是ON
再用右方向鍵切回全螢幕,顯示的又變OFF
求大神幫忙修正,謝謝


JAVASCRIPT 代码复制
  1. /*:
  2.  * @plugindesc 全螢幕選項 SRD_FullscreenToggleOption.js
  3.  * @author SumRndmDde
  4.  *
  5.  * @param Option Name
  6.  * @desc 選項名稱
  7.  * @default 全螢幕
  8.  *
  9.  * @param Position
  10.  * @desc 選項位置
  11.  * Choices are: Top, Middle, Bottom
  12.  * @default Top
  13.  *
  14.  * @param Default Value
  15.  * @desc 預設值
  16.  * true = on    false = off
  17.  * @default on
  18.  *
  19.  * @param ersist Default?
  20.  * @desc 堅持預設值 (Choices are: true, false)
  21.  * @default true
  22.  *
  23.  * @help
  24.  */
  25.  
  26. (function() {
  27.  
  28.         var parameters = PluginManager.parameters('SRD_FullscreenToggleOption');
  29.         var optionName = String(parameters['Option Name']);
  30.         var defaultValue = String(parameters['Default Value']).trim().toLowerCase() === 'true';
  31.         var position = String(parameters['Position']).toLowerCase();
  32.         var persist = String(parameters['Persist Default?']).trim().toLowerCase() === 'true';
  33.  
  34.         ConfigManager.fullscreen = defaultValue;
  35.  
  36.         Object.defineProperty(ConfigManager, 'fullscreen', {
  37.             get: function() {
  38.                 return !Graphics._isFullScreen();
  39.             },
  40.             set: function(value) {
  41.                 if (value) {
  42.                         Graphics._requestFullScreen(); //執行全螢幕
  43.                     } else {
  44.                         Graphics._cancelFullScreen(); //視窗化
  45.                     }
  46.             },
  47.             configurable: true
  48.         });
  49.  
  50.         var _ConfigManager_makeData = ConfigManager.makeData;
  51.         ConfigManager.makeData = function() {
  52.             var config = _ConfigManager_makeData.call(this);
  53.             config.fullscreen = this.fullscreen;
  54.             return config;
  55.         };
  56.  
  57.         var _ConfigManager_applyData = ConfigManager.applyData;
  58.         ConfigManager.applyData = function(config) {
  59.             _ConfigManager_applyData.call(this, config);
  60.             this.fullscreen = this.readFullscreen(config, 'fullscreen');
  61.         };
  62.  
  63.         ConfigManager.readFullscreen = function(config, name) {
  64.             var value = config[name];
  65.             if(!persist) {
  66.                     if (value !== undefined) { //假如已有定義
  67.                         return value;
  68.                     } else {
  69.                         return defaultValue; //返回預設值
  70.                     }
  71.                 } else {
  72.                         return defaultValue; //返回預設值                       
  73.                 }
  74.         };
  75.  
  76.         var _Window_Options_addGeneralOptions = Window_Options.prototype.addGeneralOptions;
  77.         Window_Options.prototype.addGeneralOptions = function() {
  78.             _Window_Options_addGeneralOptions.call(this);
  79.             if(position === 'middle') {
  80.                     this.addCommand(optionName, 'fullscreen'); //新增全螢幕選項
  81.             }
  82.         };
  83.  
  84.         var _Window_Options_makeCommandList = Window_Options.prototype.makeCommandList;
  85.         Window_Options.prototype.makeCommandList = function() {
  86.                 if(position === 'top') {
  87.                     this.addCommand(optionName, 'fullscreen'); //新增全螢幕選項
  88.             }
  89.             _Window_Options_makeCommandList.call(this);
  90.         };
  91.  
  92.         var _Window_Options_addVolumeOptions = Window_Options.prototype.addVolumeOptions;
  93.         Window_Options.prototype.addVolumeOptions = function() {
  94.             _Window_Options_addVolumeOptions.call(this);
  95.             if(position === 'bottom') {
  96.                     this.addCommand(optionName, 'fullscreen'); //新增全螢幕選項
  97.             }
  98.         };
  99.  
  100.         var _Game_Interpreter_pluginCommand = Game_Interpreter.prototype.pluginCommand;
  101.         Game_Interpreter.prototype.pluginCommand = function(command, args) {
  102.             _Game_Interpreter_pluginCommand.call(this, command, args);
  103.  
  104.             if(command.toLowerCase() === 'togglescreentype') { //假如切換選項
  105.                     Graphics._switchFullScreen(); //執行全螢幕切換
  106.             }
  107.         };
  108.  
  109. })();

Lv3.寻梦者

梦石
0
星屑
3921
在线时间
608 小时
注册时间
2018-1-16
帖子
115
发表于 2020-4-1 22:31:36 | 显示全部楼层
本帖最后由 shantianzu 于 2020-4-1 22:34 编辑

我没用过这个插件,但是我感觉这样是正确的啊,当你是视窗的时候显示ON,给人的提示是你选择或点击它,全屏就会打开。
全屏的时候显示OFF,给人的提示是你选择或者点击它,全屏就会关闭,没毛病啊。


如果你非要纠结这个问题,就用PS把两个图片的字对换一下。

点评

是這樣的,MV默認選項欄位是左方向撥動OFF,右方向撥動ON 但唯獨這腳本在顯示OFF的時候才是全螢幕,ON反而視窗化了...  发表于 2020-4-1 23:50
回复

使用道具 举报

Lv2.观梦者

梦石
0
星屑
646
在线时间
120 小时
注册时间
2019-12-7
帖子
67
发表于 2020-4-2 13:49:07 | 显示全部楼层
get: function() {
     return !Graphics._isFullScreen();
},

中间这行,Graphics前面的感叹号去掉应该就行了吧

点评

變成無法切換ON/OFF了@@  发表于 2020-4-2 14:34
新账号chyj4747,这个账号是我刚来论坛时随便填的,当时没想着要发帖
回复

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
6835
在线时间
631 小时
注册时间
2012-7-29
帖子
173
发表于 2020-4-3 09:53:02 | 显示全部楼层
我觉得三楼的说的一点也没错,把38行“return !Graphics._isFullScreen();”的感叹号去掉。不过还要再加上一步。
把第42行“Graphics._requestFullScreen(); //執行全螢幕”和第44行“Graphics._cancelFullScreen(); //視窗化”交换一下,我这里测试成功。

点评

好的我試試看  发表于 2020-4-3 14:20

评分

参与人数 1+1 收起 理由
冰冷水藍 + 1 认可答案

查看全部评分

回复

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2637
在线时间
365 小时
注册时间
2015-12-8
帖子
104
 楼主| 发表于 2020-4-3 14:25:22 | 显示全部楼层
开关关 发表于 2020-4-3 09:53
我觉得三楼的说的一点也没错,把38行“return !Graphics._isFullScreen();”的感叹号去掉。不过还要再加上 ...

感謝,又朝向成功進入了一步
目前顯示是正常了,但還有個小問題就是

一般項目,像保持衝刺、記憶選單那些開關都是配合方向鍵←OFF/→ON開的
但只有這個是←ON/→OFF跟人家相反了
抱歉如果我描述的不夠我可以再發個GIF圖表示

点评

确实挺迷的,从逻辑上讲不该出现这种情况。说不定我漏看了什么关键的代码,希望有大佬能来解答。  发表于 2020-4-3 16:47
回复

使用道具 举报

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

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-3-29 17:57

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表