Project1

标题: 窗口大小和战斗站位出现了问题 [打印本页]

作者: wqd3906    时间: 2022-1-9 14:04
标题: 窗口大小和战斗站位出现了问题
我用自带调大小插件改了窗口大小,后发现左右会出现竖的黑条。进战斗后敌人和自己站的很近,并且下面的状态人名和hp隔了很远。请问有什么办法解决吗?
作者: cenhangkai    时间: 2022-1-9 16:56
· 你指的是 Community_Basic 这个插件吧。
· 它并没有支持战斗背景自动拉伸、玩家/敌人精灵位置兼容分辨率。
· 下面是我已经添加了这些功能后的 【优化版】。
· 你将下述代码复制粘贴,覆盖掉  Community_Basic  里面的所有代码即可解决。
· 如果不会覆盖,你直接 新建一个插件,把下面的代码复制粘贴进去,改名  Community_Basic  也可。
————————————————————————————————————————————————————
  1. /*:
  2. * @plugindesc Plugin used to set basic parameters.
  3. * @author RM CoreScript team
  4. *
  5. * @help This plugin does not provide plugin commands.
  6. *
  7. * @param cacheLimit
  8. * @desc For setting the upper limit of image memory cache. (MPix)
  9. * @default 10
  10. *
  11. * @param screenWidth
  12. * @desc For setting the screen width.
  13. * @default 816
  14. *
  15. * @param screenHeight
  16. * @desc For setting the screen height.
  17. * @default 624
  18. *
  19. * @param changeWindowWidthTo
  20. * @desc If set, change window width to this value
  21. *
  22. * @param changeWindowHeightTo
  23. * @desc If set, change window height to this value
  24. *
  25. * @param renderingMode
  26. * @desc Rendering mode (canvas/webgl/auto)
  27. * @default auto
  28. *
  29. * @param alwaysDash
  30. * @desc To set initial value as to whether the player always dashes. (on/off)
  31. * @default off
  32. */

  33. /*:ja
  34. * @plugindesc 基本的なパラメーターを設定するプラグインです。
  35. * @author RM CoreScript team
  36. *
  37. * @help このプラグインにはプラグインコマンドはありません。
  38. *
  39. * @param cacheLimit
  40. * @desc 画像のメモリへのキャッシュの上限値 (MPix)
  41. * @default 10
  42. *
  43. * @param screenWidth
  44. * @desc 画面サイズの幅
  45. * @default 816
  46. *
  47. * @param screenHeight
  48. * @desc 画面サイズの高さ
  49. * @default 624
  50. *
  51. * @param changeWindowWidthTo
  52. * @desc 値が設定された場合、ウインドウの幅を指定した値に変更
  53. *
  54. * @param changeWindowHeightTo
  55. * @desc 値が設定された場合、ウインドウの高さを指定した値に変更
  56. *
  57. * @param renderingMode
  58. * @desc レンダリングモード (canvas/webgl/auto)
  59. * @default auto
  60. *
  61. * @param alwaysDash
  62. * @desc プレイヤーが常時ダッシュするかどうかの初期値 (on/off)
  63. * @default off
  64. */

  65. (function() {
  66.     function toNumber(str, def) {
  67.         return isNaN(str) ? def : +(str || def);
  68.     }

  69.     var parameters = PluginManager.parameters('Community_Basic');
  70.     var cacheLimit = toNumber(parameters['cacheLimit'], 10);
  71.     var screenWidth = toNumber(parameters['screenWidth'], 816);
  72.     var screenHeight = toNumber(parameters['screenHeight'], 624);
  73.     var renderingMode = parameters['renderingMode'].toLowerCase();
  74.     var alwaysDash = parameters['alwaysDash'].toLowerCase() === 'on';
  75.     var windowWidthTo = toNumber(parameters['changeWindowWidthTo'], 0);
  76.     var windowHeightTo = toNumber(parameters['changeWindowHeightTo'], 0);

  77.     var windowWidth;
  78.     var windowHeight;

  79.     if(windowWidthTo){
  80.         windowWidth = windowWidthTo;
  81.     }else if(screenWidth !== SceneManager._screenWidth){
  82.         windowWidth = screenWidth;
  83.     }

  84.     if(windowHeightTo){
  85.         windowHeight = windowHeightTo;
  86.     }else if(screenHeight !== SceneManager._screenHeight){
  87.         windowHeight = screenHeight;
  88.     }


  89.     ImageCache.limit = cacheLimit * 1000 * 1000;
  90.     SceneManager._screenWidth = screenWidth;
  91.     SceneManager._screenHeight = screenHeight;
  92.     SceneManager._boxWidth = screenWidth;
  93.     SceneManager._boxHeight = screenHeight;

  94.     SceneManager.preferableRendererType = function() {
  95.         if (Utils.isOptionValid('canvas')) {
  96.             return 'canvas';
  97.         } else if (Utils.isOptionValid('webgl')) {
  98.             return 'webgl';
  99.         } else if (renderingMode === 'canvas') {
  100.             return 'canvas';
  101.         } else if (renderingMode === 'webgl') {
  102.             return 'webgl';
  103.         } else {
  104.             return 'auto';
  105.         }
  106.     };

  107.     var _ConfigManager_applyData = ConfigManager.applyData;
  108.     ConfigManager.applyData = function(config) {
  109.         _ConfigManager_applyData.apply(this, arguments);
  110.         if (config['alwaysDash'] === undefined) {
  111.             this.alwaysDash = alwaysDash;
  112.         }
  113.     };


  114.     var _SceneManager_initNwjs = SceneManager.initNwjs;
  115.     SceneManager.initNwjs = function() {
  116.         _SceneManager_initNwjs.apply(this, arguments);

  117.         if (Utils.isNwjs() && windowWidth && windowHeight) {
  118.             var dw = windowWidth - window.innerWidth;
  119.             var dh = windowHeight - window.innerHeight;
  120.             window.moveBy(-dw / 2, -dh / 2);
  121.             window.resizeBy(dw, dh);
  122.         }
  123.     };

  124.         var _sprite_Actor_setActorHome = Sprite_Actor.prototype.setActorHome;
  125.         Sprite_Actor.prototype.setActorHome = function(index) {
  126.       _sprite_Actor_setActorHome.call(this, index);
  127.       this._homeX += Graphics.boxWidth - 816;
  128.       this._homeY += Graphics.boxHeight - 624;
  129.     };
  130.     Sprite_Actor.prototype.retreat = function() {
  131.     this.startMove(1200, 0, 120);
  132.     };

  133.     var _sprite_Enemy_setBattler = Sprite_Enemy.prototype.setBattler;
  134.     Sprite_Enemy.prototype.setBattler = function(battler) {
  135.       _sprite_Enemy_setBattler.call(this, battler);
  136.       if (!this._enemy._alteredScreenY) {
  137.         this._homeY += Graphics.boxHeight - 624;
  138.         this._enemy._screenY = this._homeY;
  139.         this._enemy._alteredScreenY = true;
  140.       }
  141.       if ($gameSystem.isSideView()) return;
  142.       if (!this._enemy._alteredScreenX) {
  143.         this._homeX += (Graphics.boxWidth - 816) / 2;
  144.         this._enemy._screenX = this._homeX;
  145.         this._enemy._alteredScreenX = true;
  146.       }
  147.     };

  148.     function Sprite_Battleback() {
  149.         this.initialize.apply(this, arguments);
  150.     }

  151.     Sprite_Battleback.prototype = Object.create(Sprite.prototype);
  152.     Sprite_Battleback.prototype.constructor = Sprite_Battleback;

  153.     Sprite_Battleback.prototype.initialize = function(bitmapName, type) {
  154.       Sprite.prototype.initialize.call(this);
  155.       this._bitmapName = bitmapName;
  156.       this._battlebackType = type;
  157.       this.createBitmap();
  158.     };

  159.     Sprite_Battleback.prototype.createBitmap = function() {
  160.       if (this._bitmapName === '') {
  161.         this.bitmap = new Bitmap(Graphics.boxWidth, Graphics.boxHeight);
  162.       } else {
  163.         if (this._battlebackType === 1) {
  164.           this.bitmap = ImageManager.loadBattleback1(this._bitmapName);
  165.         } else {
  166.           this.bitmap = ImageManager.loadBattleback2(this._bitmapName);
  167.         }
  168.         this.scaleSprite();
  169.       }
  170.     };

  171.     Sprite_Battleback.prototype.scaleSprite = function() {
  172.       if (this.bitmap.width <= 0) return setTimeout(this.scaleSprite.bind(this), 5);
  173.       var width = Graphics.boxWidth;
  174.       var height = Graphics.boxHeight;
  175.       if (this.bitmap.width < width) {
  176.         this.scale.x = width / this.bitmap.width;
  177.       }
  178.       if (this.bitmap.height < height) {
  179.         this.scale.y = height / this.bitmap.height;
  180.       }
  181.       this.anchor.x = 0.5;
  182.       this.x = Graphics.boxWidth / 2;
  183.       if ($gameSystem.isSideView()) {
  184.         this.anchor.y = 1;
  185.         this.y = Graphics.boxHeight;
  186.       } else {
  187.         this.anchor.y = 0.5;
  188.         this.y = Graphics.boxHeight / 2;
  189.       }
  190.     };

  191.     Spriteset_Battle.prototype.createBattleback = function() {
  192.       this._back1Sprite = new Sprite_Battleback(this.battleback1Name(), 1);
  193.       this._back2Sprite = new Sprite_Battleback(this.battleback2Name(), 2);
  194.       this._battleField.addChild(this._back1Sprite);
  195.       this._battleField.addChild(this._back2Sprite);
  196.     };
  197.     Spriteset_Battle.prototype.updateBattleback = function() {
  198.     };
  199. })();
复制代码

作者: wqd3906    时间: 2022-1-9 17:02
cenhangkai 发表于 2022-1-9 16:56
· 你指的是 Community_Basic 这个插件吧。
· 它并没有支持战斗背景自动拉伸、玩家/敌人精灵位置兼容分辨 ...

万分感谢~
作者: a2313211    时间: 2022-1-23 22:34
6666666666




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1