在扒小丑牌代码的时候发现了这么一个小秘密,实在是不吐不快,和吧友们分享一下
事情是这样省的,我最近在学oop编程,但由于lua里面没有现成的继承类的代码,所以开发者需要使用第三方库或者自己造轮子
而在balatro的源代码中,有这样一个文件“object.lua”,其他所有子类,比如卡牌,按钮等实体,都是从object里继承的,继承函数extend()也是在这个文件里定义的
之前说了,要实现继承类需要自己造轮子,object.lua就是那个轮子,但不是作者自己造的,而是从另一个游戏里借的
为啥这么说呢?在object.lua的开头有一行注释:
This Object implementation was taken from SNKRX (MIT license). Slightly modified, this is a very simple OOP base
意思是说,下面这坨面向对象的基础代码是从SNKRX里拿的,我稍微改了下(MIT是一个开源的许可证,可以商用)
事情是这样省的,我最近在学oop编程,但由于lua里面没有现成的继承类的代码,所以开发者需要使用第三方库或者自己造轮子
而在balatro的源代码中,有这样一个文件“object.lua”,其他所有子类,比如卡牌,按钮等实体,都是从object里继承的,继承函数extend()也是在这个文件里定义的
之前说了,要实现继承类需要自己造轮子,object.lua就是那个轮子,但不是作者自己造的,而是从另一个游戏里借的
为啥这么说呢?在object.lua的开头有一行注释:
This Object implementation was taken from SNKRX (MIT license). Slightly modified, this is a very simple OOP base
意思是说,下面这坨面向对象的基础代码是从SNKRX里拿的,我稍微改了下(MIT是一个开源的许可证,可以商用)