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

Project1

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

[已经解决] 请问怎么调用其他脚本中的函数?

[复制链接]

Lv1.梦旅人

梦石
0
星屑
49
在线时间
29 小时
注册时间
2015-4-9
帖子
10
跳转到指定楼层
1
发表于 2015-4-11 23:36:09 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

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

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

x
比如:
A脚本:
RUBY 代码复制
  1. module ABC
  2.      def test
  3.            p "Test"
  4.      end
  5. end


B脚本中怎么调用,谢谢?前天刚接触RMXP,希望各位大大指教一下

Lv1.梦旅人

梦石
0
星屑
49
在线时间
29 小时
注册时间
2015-4-9
帖子
10
5
 楼主| 发表于 2015-4-12 00:15:19 | 只看该作者
RyanBern 发表于 2015-4-12 00:02
可以,没有什么本质区别。
如果A类已经糅合了ABC模块,那么使用A类也可以调用ABC模块的方法。
module ABC ...

谢谢,明白了,讲解的很详细!
是这样的,我在论坛上找到一个随机迷宫和一个四处留情的脚本,前面那个可以实现随机生成迷宫,后面那个可以实现在地图上随机生成事件,我想在随机生成迷宫的同时也能在地图上随机生成事件,但是要使事件都生成在迷宫的道路上。
仔细研究脚本发现随机迷宫有个函数可以调整事件位置使它移动到道路内,那么我的思路是想在迷宫生成脚本中调用四处留情随机生成事件的函数,然后再对生成的事件进行位置的调整,这样可以吗?

脚本.zip

20.46 KB, 下载次数: 58

点评

我近几天看看,现在比较晚了  发表于 2015-4-12 00:35
回复 支持 反对

使用道具 举报

Lv4.逐梦者 (版主)

梦石
0
星屑
9532
在线时间
5073 小时
注册时间
2013-6-21
帖子
3580

开拓者贵宾剧作品鉴家

4
发表于 2015-4-12 00:02:01 | 只看该作者
本帖最后由 RyanBern 于 2015-4-12 17:37 编辑
wangzh9173 发表于 2015-4-11 23:57
谢谢版主大大,继续以上面这个为例,那能不能在A类中调用ABC Module中的方法呢 ...


可以。
A类可不用糅合ABC模块,调用ABC模块方法的时候可以直接用'模块名.方法名'的形式调用。
RUBY 代码复制
  1. module ABC
  2.   def test
  3.     p "Test"
  4.   end
  5.   def self.test
  6.     p "Module Function : Test"
  7.   end
  8. end
  9.  
  10. a = A.new
  11. a.test # => "Test"
  12.  
  13. class B
  14.   def test_b
  15.     ABC.test
  16.   end
  17. end
  18.  
  19. b = B.new
  20. b.test_b # => "Module Function : Test"

点评

不是。test 是 Kernel 的方法……  发表于 2015-4-12 17:58
原来模块方法糅合到类里面就变成了private方法了啊  发表于 2015-4-12 17:37
private method `test' called for A:Class (NoMethodError)  发表于 2015-4-12 14:50
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
49
在线时间
29 小时
注册时间
2015-4-9
帖子
10
3
 楼主| 发表于 2015-4-11 23:57:54 | 只看该作者
RyanBern 发表于 2015-4-11 23:47
这样写的话要把此module糅合到其他类中才能使用这个类的对象调用。
class A
  include ABC

谢谢版主大大,继续以上面这个为例,那能不能在A类中调用ABC Module中的方法呢

点评

4L的回帖有一个错误,现在我已经改过来了  发表于 2015-4-12 17:37
回复 支持 反对

使用道具 举报

Lv4.逐梦者 (版主)

梦石
0
星屑
9532
在线时间
5073 小时
注册时间
2013-6-21
帖子
3580

开拓者贵宾剧作品鉴家

2
发表于 2015-4-11 23:47:56 | 只看该作者
这样写的话要把此module糅合到其他类中才能使用这个类的对象调用。
RUBY 代码复制
  1. class A
  2.   include ABC
  3. end
  4. a = A.new
  5. a.test # => "Test"

或者是将此方法设置为模块方法,这样使用模块名即可调用。
RUBY 代码复制
  1. module ABC
  2.   def self.test
  3.     p "Test"
  4.   end
  5. end
  6.  
  7. ABC.test # => "Test"
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-26 06:38

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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