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

Project1

 找回密码
 注册会员
搜索
查看: 2404|回复: 12
打印 上一主题 下一主题

[有事请教] 关于建一个函数库插件的设想,遇到些问题(已解决)

[复制链接]

Lv3.寻梦者

梦石
0
星屑
2346
在线时间
168 小时
注册时间
2017-4-25
帖子
219
跳转到指定楼层
1
发表于 2018-10-25 10:52:21 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本帖最后由 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”,以至无法加载插件。

Lv4.逐梦者

梦石
0
星屑
12157
在线时间
4435 小时
注册时间
2014-4-11
帖子
5955

开拓者

2
发表于 2018-10-25 13:51:22 | 只看该作者
Game_Party.prototype.HurtNumber_show  = function(apzs,xp,yp) {

$gameParty.HurtNumber_show(apzs,xp,yp)

点评

()前面是没有空格的  发表于 2018-10-25 22:42
谢谢,解决了,找不到函数的问题。但有来了函数为定义的问题(undefind is not function)  发表于 2018-10-25 22:12
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
4079
在线时间
440 小时
注册时间
2015-4-4
帖子
156
3
发表于 2018-10-25 13:52:05 | 只看该作者
参考一下这个吧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) {
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2346
在线时间
168 小时
注册时间
2017-4-25
帖子
219
4
 楼主| 发表于 2018-10-25 22:14:38 | 只看该作者
yang1zhi 发表于 2018-10-25 13:51
Game_Party.prototype.HurtNumber_show  = function(apzs,xp,yp) {

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

看来,还是基础不够……头痛
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2346
在线时间
168 小时
注册时间
2017-4-25
帖子
219
5
 楼主| 发表于 2018-10-26 10:34:55 | 只看该作者
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, 下载次数: 16)

函数库插件.png

点评

按F12  发表于 2018-10-26 15:40
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
33432
在线时间
5108 小时
注册时间
2012-11-19
帖子
4878

开拓者

6
发表于 2018-10-26 15:14:57 | 只看该作者
本帖最后由 芯☆淡茹水 于 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 17:48
xp vx va mv  va mz 各类型脚本/插件定制
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
33432
在线时间
5108 小时
注册时间
2012-11-19
帖子
4878

开拓者

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

点评

ok,感谢!先前我也认为是没加载,但你的方法帮我验证了。没加载的原因是插件文件名字和插件内容里的名字不一致。  发表于 2018-10-26 20:25
这是个好主意  发表于 2018-10-26 19:52
xp vx va mv  va mz 各类型脚本/插件定制
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-14 13:04

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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