环境: Ruby 1.9.3 Ruby/SDL 2.1.1.1
状况:
想要把SDL的Surface再包装一层
于是使用了继承
class Surface < SDL::Surface
def initialize(w,h,format)
super(SDL::SWSURFACE,w,h,format)
end
def self.flag
SDL::SWSURFACE
end
end
所以呼叫时就改成 surface=Surface.new(w,h,format)
没想到错误提示却跑出来
(应该是没有继承到?)
must be SDL::Surface.new(flags,w,h,surface) or
SDL::Surface.new(flags,w,h,depth,Rmask,Gmask,Bmask,Amask) (ArgumentError)
继承的那一段本来是程式一开始就有
后来改到SDL初始化后也没用
其他类别的继承也没这种问题
我也没拼错字啊...
(我其他的类别也有改建构子的参数 没问题
这个就不行= =)
目前只好使用Surface.new(Surface.flag,w,h,format)
那个flag呼叫倒是很正确...