Project1

标题: 关于建一个函数库插件的设想,遇到些问题(已解决) [打印本页]

作者: rexuegg123    时间: 2018-10-25 10:52
标题: 关于建一个函数库插件的设想,遇到些问题(已解决)
本帖最后由 rexuegg123 于 2018-10-26 22:13 编辑

关于建一个函数库插件的设想:我写了些方法放在空白插件里,用mv打开插件(ON),然后在地图中建一个事件并在脚本里写入方法名,事件运行结果是找不到该方法。
比如:
     插件里的方法定义是:                 HurtNumber_show  =function(apzs,xp,yp){…………………………………………}
     事件的脚本里就写入该名称:    HurtNumber_show (apzs,xp,yp);
     运行事件的结果:                    HurtNumber_show is not defined

那位大神指点一下,是不是还差什么步骤?



感谢坛子里的大神们,问题已解决!

问题出在两个地方:
1、插件里定义方法时,方法名前面需要加"Game_Party.prototype.",比如:Game_Party.prototype.HurtNumber_show  = function(apzs,xp,yp){…………………………………………}
     在事件里调用的时候函数名前面加 “$gameParty.”,比如:$gameParty. HurtNumber_show (apzs,xp,yp);

2、插件文件名一定要与插件内容里的名称一致。我出的问题就是,文件名是“Function_library.js”,而内容里名称却是“Function library.js”,以至无法加载插件。


作者: yang1zhi    时间: 2018-10-25 13:51
Game_Party.prototype.HurtNumber_show  = function(apzs,xp,yp) {

$gameParty.HurtNumber_show(apzs,xp,yp)

作者: 玄羽    时间: 2018-10-25 13:52
参考一下这个吧https://rpg.blue/thread-410444-1-1.html


//在事件中的脚本里,写上$gameParty.XY_animation(1,100,100)
//也可以自己在指定的Scene里面调用createXYanimationWindow来实现

Game_Party.prototype.XY_animation = function(id,x,y) {
    SceneManager._scene.createXYanimationWindow(id,x,y)
};

//显示动画
Scene_Base.prototype.createXYanimationWindow = function(id,x,y) {
作者: rexuegg123    时间: 2018-10-25 22:14
yang1zhi 发表于 2018-10-25 13:51
Game_Party.prototype.HurtNumber_show  = function(apzs,xp,yp) {

$gameParty.HurtNumber_show(apzs,xp,y ...

看来,还是基础不够……头痛
作者: rexuegg123    时间: 2018-10-26 10:34
yang1zhi 发表于 2018-10-25 13:51
Game_Party.prototype.HurtNumber_show  = function(apzs,xp,yp) {

$gameParty.HurtNumber_show(apzs,xp,y ...

用你的方法,我把定义函数的脚本写到公共事件(事件名称:函数库)里面。然后,在地图上新建事件先调用该公共事件,再在脚本里直接引用函数,可以正常引用。
  

但方法写在插件里就不行了,应该插件里的函数方法并没被游戏加载,所以事件里无法直接引用。不知道为什么没被加载……
  




函数库插件.png (60.17 KB, 下载次数: 18)

函数库插件.png

作者: 芯☆淡茹水    时间: 2018-10-26 15:14
本帖最后由 芯☆淡茹水 于 2018-10-26 15:19 编辑


function Game_Test(text) {
    alert(text);
};

事件脚本:Game_Test('这是测试!');

或者这样也行
var Game_Test = {};
Game_Test.showText = function(text){
    alert(text);
};
事件脚本:Game_Test.showText('这是测试!');

与游戏对象不相关的功能,最好不要写在这个对象里面。

作者: 芯☆淡茹水    时间: 2018-10-26 18:28
写插件里但在游戏里未加载成功,大部分情况是语法错误,比如符号标点,缩进,,什么的。
你可以在插件的新一行,写上 alert('加载成功') 。如果启动游戏就弹出这个显示框,那就可以排除这个情况了。




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