|
你一定已经知道,ruby是面向对象的程序语言,但你可能不知道ruby其实支持原型编程。
其实,你可能已经在许多地方看到过这种编程思想,甚至是在rm的默认脚本中。
module Cache
#--------------------------------------------------------------------------
# ● 获取动画图像
#--------------------------------------------------------------------------
def self.animation(filename, hue)
load_bitmap("Graphics/Animations/", filename, hue)
end
end
fucker = Object.new
def fucker.says
print "mother fucker"
end
fucker.says
gentleman = fucker.clone
#绅士虽然也会说mother fucker,但平时不说,很讲礼貌
def gentleman.greet #写法1
print "greeting"
end
dog = gentleman.clone
class << dog #写法2
#狗可不会说话xd
undef says
def greet
print "bite"
end
end
#什么?我们忘了给fucker定义一个greet了?没关系,加上就好了- -b
fucker.define_singleton_method (:greet){says}#写法3,ruby1.9特有(rmva)
#ok,大功告成,看看运行结果吧...
fucker.greet #=>mother fucker
fucker.says #=>mother fucker
gentleman.greet #=>greeting
gentleman.says #=>mother fucker (表里不一的家伙xd
dog.greet #=>bite
dog.says #=>undefined method erro(我不会说话啊,嗷呜
$scene = Scene_Equip.new
class << $scene
alias fucker_update_right update_right
def update_right
if Input.trigger?(Input::B)
$game_system.se_play($data_system.cancel_se)
$scene = Scene_Map.new
else
fucker_update_right
end
end
end
站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作
GMT+8, 2024-5-3 00:22
Powered by Discuz! X3.1
© 2001-2013 Comsenz Inc.