Project1

标题: 请问:几个简单的脚本问题 [打印本页]

作者: 机械守护者    时间: 2014-7-7 18:42
标题: 请问:几个简单的脚本问题
1如何获取事件名称?
2实例变量/临时变量 如果在事件脚本中创建,那么它的生效范围是?
3attr系列具体用途?


谢谢。
作者: taroxd    时间: 2014-7-7 19:23
本帖最后由 taroxd 于 2014-7-7 20:28 编辑

1. event.name 其中 event 为 RPG::Event 的实例
2. 实例变量是给了 Game_Interpreter 的实例,通常为 $game_map 的实例变量 @interpreter。总之除非你知道你在干什么,别在事件脚本里用实例变量。临时变量什么的,事件脚本执行完就死了。
3. https://rpg.blue/forum.php?mod=r ... 517&pid=2519455 我解释的不清楚不要怪我,面向对象神马的真是最难讲了啦
总之就是实例变量的公开啦……

自己别去碰默认脚本,先写点小小的类什么的玩玩,创建几个实例,体会一下实例变量是什么东西吧。实践才是记住那堆无聊的东西的最佳方式。
作者: kuerlulu    时间: 2014-7-7 21:04
  1. def attr_reader(*syms)
  2.   syms.each do |sym|
  3.     str <<-EOF
  4.       def #{sym}
  5.         return @#{sym}
  6.       end
  7.     EOF
  8.     eval str
  9.   end
  10. end
复制代码
嗯如果你能看懂上面这个的话
作者: taroxd    时间: 2014-7-7 21:09
本帖最后由 taroxd 于 2014-7-7 21:13 编辑
kuerlulu 发表于 2014-7-7 21:04
嗯如果你能看懂上面这个的话



敢不敢专业一点……啊楼主请无视这一层和楼上那一层

RUBY 代码复制
  1. class MyClass; end
  2.  
  3. class << MyClass
  4.   private
  5.   def attr_reader(*syms)
  6.     class_eval syms.map {|sym| "def #{sym}\n@#{sym}\nend" }.join("\n")
  7.   end
  8. end





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