Project1

标题: 请问怎么调用其他脚本中的函数? [打印本页]

作者: wangzh9173    时间: 2015-4-11 23:36
标题: 请问怎么调用其他脚本中的函数?
比如:
A脚本:
RUBY 代码复制
  1. module ABC
  2.      def test
  3.            p "Test"
  4.      end
  5. end


B脚本中怎么调用,谢谢?前天刚接触RMXP,希望各位大大指教一下
作者: RyanBern    时间: 2015-4-11 23:47
这样写的话要把此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"

作者: wangzh9173    时间: 2015-4-11 23:57
RyanBern 发表于 2015-4-11 23:47
这样写的话要把此module糅合到其他类中才能使用这个类的对象调用。
class A
  include ABC

谢谢版主大大,继续以上面这个为例,那能不能在A类中调用ABC Module中的方法呢
作者: RyanBern    时间: 2015-4-12 00:02
本帖最后由 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"

作者: wangzh9173    时间: 2015-4-12 00:15
RyanBern 发表于 2015-4-12 00:02
可以,没有什么本质区别。
如果A类已经糅合了ABC模块,那么使用A类也可以调用ABC模块的方法。
module ABC ...

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

脚本.zip

20.46 KB, 下载次数: 58






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