Project1

标题: 如何扩充Graphics.update方法定义 [打印本页]

作者: 熊熊烈火雄壮    时间: 2014-9-4 13:56
标题: 如何扩充Graphics.update方法定义
module Graphics

#alias xx_update update #出错
#alias_method xx_update "self.update" #也出错

def self.update

xx_update

#my code

end

end

以上是我做的尝试,没成功,请教下,如何才能往原Graphics.update方法中扩展代码
作者: 传灭虫    时间: 2014-9-4 14:38
你要往里面塞什么
作者: 熊熊烈火雄壮    时间: 2014-9-4 14:52
传灭虫 发表于 2014-9-4 14:38
你要往里面塞什么

需要实时更新的变量
作者: RyanBern    时间: 2014-9-4 15:57
在另一个帖子中看到的
RUBY 代码复制
  1. module Graphics
  2.   @update = method('update') if @update.nil?
  3.   def self.update
  4.     # 这里执行你自己的代码
  5.     @update.call
  6.   end
  7. end

作者: taroxd    时间: 2014-9-4 16:02
本帖最后由 taroxd 于 2014-9-4 16:07 编辑

模块方法也就是模块的单例方法,也就是模块单例类的方法。从这个角度考虑就可以这么做:

RUBY 代码复制
  1. class << Graphics
  2.   alias old_update update
  3.   def update
  4.     old_update
  5.     # ...
  6.   end
  7. end


https://rpg.blue/thread-347871-1-1.html

这里的 singleton_def_ 系列的方法也可以很方便地使用(仅限VA)
作者: 克莉丝    时间: 2014-9-4 17:24
其实不提倡往这个地方塞东西真的
作者: 熊熊烈火雄壮    时间: 2014-9-4 18:13
感谢楼上各位朋友的热心帮忙!又掌握一点新技能了,哈哈~
ps:怎么修改不成 【已经解决】?




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