雪在燃 发表于 2017-11-2 17:39
借助别人的代码回答问题=w=
至于第二个问题,ImageManager.loadParallax(imageName) 是一个特殊定义的方法 ...
/*: * @plugindesc 主菜单管理 * @author 来自网络教程 * @help * @param 背景图片设置 * @type struct<list1>[] * @desc 可选项 * @default [] * @param 菜单编辑 * @desc 可选项 * @type struct<list2>[] * @default [] */ /*~struct~list1: * @param 生效 * @type boolean * @on 是 * @off 否 * @desc 否:false 是:true * @default true * @param 主菜单 * @type file * @desc 主菜单背景使用的图片 * @dir img\parallaxes * @param 物品栏 * @type file * @desc 物品栏背景使用的图片 * @dir img\parallaxes * @param 技能界面 * @type file * @desc 技能界面背景使用的图片 * @dir img\parallaxes * @param 装备界面 * @type file * @desc 装备界面背景使用的图片 * @dir img\parallaxes * @param 存档界面 * @type file * @desc 存档界面背景使用的图片 * @dir img\parallaxes * @param 其他界面 * @type file * @desc 其他界面背景使用的图片 * @dir img\parallaxes */ /*~struct~list2: * @param 生效 * @type boolean * @on 是 * @off 否 * @desc 否:false 是:true * @default true * @param 名称 * @desc 显示在菜单中的名称 * @type text * @param 命令 * @desc 英文命令 * @type text */ var params = PluginManager.parameters("edit_menu"); Scene_MenuBase.prototype.createBackground = function() { this._backgroundSprite=new Sprite(); var imageName; if(this instanceof Scene_Menu){ imageName = params["主菜单"]; }else if(this instanceof Scene_Item){ imageName = params["物品栏"] }else if(this instanceof Scene_Skill){ imageName = params["技能界面"] }else if(this instanceof Scene_Equip){ imageName = params["装备界面"] }else if(this instanceof Scene_Save || this instanceof Scene_Load) { imageName = params["存档界面"] }else{ imageName = params["其他界面"] } this._backgroundSprite.bitmap=ImageManager(imageName); this.addChild(this._backgroundSprite); }; Window_MenuCommand.prototype.addOriginalCommands = function () { this.addCommand(params["名称"], params["命令"],params["生效"]); }; var _Scene_Menu_createCommandWindow = Scene_Menu.prototype.createCommandWindow; Scene_Menu.prototype.createCommandWindow = function () { _Scene_Menu_createCommandWindow.call(this); this._commandWindow.setHandler(params['命令'], this.commandRename.bind(this)); }; Scene_Menu.prototype.commandRename = function () { this._statusWindow.setFormationMode(false); this._statusWindow.selectLast(); this._statusWindow.activate(); this._statusWindow.setHandler('ok', this.rename_ok.bind(this)); this._statusWindow.setHandler('cancel', this.rename_cancel.bind(this)); }; Scene_Menu.prototype.rename_ok = function() { SceneManager.push(Scene_Name); SceneManager.prepareNextScene($gameParty.menuActor()._actorId, 10); }; Scene_Menu.prototype.rename_cancel = function() { this._statusWindow.deselect(); this._commandWindow.activate(); }; Window_MenuStatus.prototype.processOk = function() { $gameParty.setMenuActor($gameParty.members()[this.index()]); Window_Selectable.prototype.processOk.call(this); };
bloodship 发表于 2017-11-2 20:24
我想写成这样的,就不能用imagemanager了吧?
还是不该这么写,我究竟得怎么办。
/*:
soulsaga 发表于 2017-11-2 20:32
字符不是要用'符号?
bloodship 发表于 2017-11-2 20:24
我想写成这样的,就不能用imagemanager了吧?
还是不该这么写,我究竟得怎么办。
/*:
var params = PluginManager.parameters("edit_menu"); Scene_MenuBase.prototype.createBackground = function() { this._backgroundSprite=new Sprite(); ImageManager.loadParallax = function(filename, hue) { return this.loadBitmap('img/Parallax/', filename, hue, true); }; var imageName; if(this instanceof Scene_Menu){ imageName = params['主菜单']; }else if(this instanceof Scene_Item){ imageName = params['物品栏'] }else if(this instanceof Scene_Skill){ imageName = params['技能界面'] }else if(this instanceof Scene_Equip){ imageName = params['装备界面'] }else if(this instanceof Scene_Save || this instanceof Scene_Load) { imageName = params['存档界面'] }else{ imageName = params['其他界面'] } this._backgroundSprite.bitmap=ImageManager.loadParallax(imageName); this.addChild(this._backgroundSprite); };
bloodship 发表于 2017-11-2 21:01
改成这样了,没有报错,但是背景是黑色的,应该是没有选择到图
var params = PluginManager.parameters("ed ...
雪在燃 发表于 2017-11-2 21:30
没有对应的图片,你可以放一张图片在img/parallax文件夹下,然后把imageName = '文件名'
应该就没有问题 ...
/*: * @plugindesc 主菜单管理 * @author 来自网络教程 * @help * @param 背景图片设置 * @type struct<list1>[] * @desc 可选项 * @default [] * @param 菜单编辑 * @desc 可选项 * @type struct<list2>[] * @default [] */ /*~struct~list1: * @param 生效 * @type boolean * @on 是 * @off 否 * @desc 否:false 是:true * @default true * @param 主菜单 * @type file * @desc 主菜单背景使用的图片 * @dir img\parallaxes * @param 物品栏 * @type file * @desc 物品栏背景使用的图片 * @dir img\parallaxes * @param 技能界面 * @type file * @desc 技能界面背景使用的图片 * @dir img\parallaxes * @param 装备界面 * @type file * @desc 装备界面背景使用的图片 * @dir img\parallaxes * @param 存档界面 * @type file * @desc 存档界面背景使用的图片 * @dir img\parallaxes * @param 其他界面 * @type file * @desc 其他界面背景使用的图片 * @dir img\parallaxes */ /*~struct~list2: * @param 生效 * @type boolean * @on 是 * @off 否 * @desc 否:false 是:true * @default true * @param 名称 * @desc 显示在菜单中的名称 * @type text * @param 命令 * @desc 英文命令 * @type text */ var params = PluginManager.parameters("edit_menu"); Scene_MenuBase.prototype.createBackground = function() { this._backgroundSprite=new Sprite(); ImageManager.loadParallax = function(filename, hue) { return this.loadBitmap('img/Parallax/', filename, hue, true); }; var imageName; if(this instanceof Scene_Menu){ imageName = params['主菜单']; }else if(this instanceof Scene_Item){ imageName = params['物品栏'] }else if(this instanceof Scene_Skill){ imageName = params['技能界面'] }else if(this instanceof Scene_Equip){ imageName = params['装备界面'] }else if(this instanceof Scene_Save || this instanceof Scene_Load) { imageName = params['存档界面'] }else{ imageName = params['其他界面'] } this._backgroundSprite.bitmap=ImageManager.loadParallax(imageName); this.addChild(this._backgroundSprite); }; Window_MenuCommand.prototype.addOriginalCommands = function () { this.addCommand(params['名称'], params['命令'],true); }; var _Scene_Menu_createCommandWindow = Scene_Menu.prototype.createCommandWindow; Scene_Menu.prototype.createCommandWindow = function () { _Scene_Menu_createCommandWindow.call(this); this._commandWindow.setHandler(params['命令'], this.commandRename.bind(this)); }; Scene_Menu.prototype.commandRename = function () { this._statusWindow.setFormationMode(false); this._statusWindow.selectLast(); this._statusWindow.activate(); this._statusWindow.setHandler('ok', this.rename_ok.bind(this)); this._statusWindow.setHandler('cancel', this.rename_cancel.bind(this)); }; Scene_Menu.prototype.rename_ok = function() { SceneManager.push(Scene_Name); SceneManager.prepareNextScene($gameParty.menuActor()._actorId, 10); }; Scene_Menu.prototype.rename_cancel = function() { this._statusWindow.deselect(); this._commandWindow.activate(); }; Window_MenuStatus.prototype.processOk = function() { $gameParty.setMenuActor($gameParty.members()[this.index()]); Window_Selectable.prototype.processOk.call(this); };
bloodship 发表于 2017-11-2 21:37
对,就是你说的这个症状!
我练习一下,所以就改教程了。我想在插件界面选择图片就可以直接设置背景,不 ...
雪在燃 发表于 2017-11-2 21:52
可以使用的吧,你具体要实现什么我还不是很清楚
这方面自己研究一下,具体的使用方法没有什么限 ...
* @param 主菜单 * @type file * @desc 主菜单背景使用的图片 * @dir img\parallaxes
bloodship 发表于 2017-11-2 22:19
我没学过编程,可能说的废话比较多还说的不清楚,大致情况是这样的:
我看系统自带的那个madewithmv的插件 ...
bloodship 发表于 2017-11-2 21:01
改成这样了,没有报错,但是背景是黑色的,应该是没有选择到图
var params = PluginManager.parameters("ed ...
雪在燃 发表于 2017-11-2 22:36
这里的选择应该只是方便使用而已
实际上参数里面存储的就是文件名
/*: * @plugindesc test * @author test * * @param 主菜单 * @desc 标题画面的图片使用的图片 * @default 菜单 */ (function () { //这个是获test.js 这个插件 的所有参数,也就是参数组 赋予给 parameters 变量 var parameters = PluginManager.parameters('test'); //这个是获取参数组中 '主菜单' 这个的参数,把他赋予给 name 变量, // String(xxx) 是为了转换为 字符串 ,其实一般不用转换也不会有问题.. var name = String(parameters['主菜单'] || ''); Scene_Title.prototype.createBackground = function () { // ImageManager.loadParallax(name) 意思就是获取Parallax 文件夹中 名字为 name 这个变量的值 这个文件的 bitmap , // new Sprite (xxx) 就是创建一个新精灵显示这个bitmap this._backSprite1 = new Sprite(ImageManager.loadParallax(name)); this._backSprite2 = new Sprite(ImageManager.loadTitle2($dataSystem.title2Name)); //这一句是把这个精灵添加到场景中 this.addChild(this._backSprite1); this.addChild(this._backSprite2); }; })();
欢迎光临 Project1 (https://rpg.blue/) | Powered by Discuz! X3.1 |