cocos2dx2.2.2 自带的extern.lua的一个bug
最近在做核心战斗,大量用到了类,不得不说cocos2dx 2.2.2 自带的类方法真是写的太不好了,有一个很初级的bug,另外缺少超类方法。 初级bug是原作者在new方法里,连:和.都没搞清楚。 重新写了一下该文件: function super(TmpClass) return TmpClass.super end --Create an class. function class(classname,super) local superType = type(super) local cls if superType ~= "function" and superType ~= "table" then superType = nil super = nil end if superType == "function" or (super and super.__ctype == 1) then -- inherited from native C++ Object cls = {} if superType == "table" then -- copy fields from super for k,v in pairs(super) do cls[k] = v end cls.__create = super.__create cls.super = super else cls.__create = super end cls.ctor = function() end cls.__cname = classname cls.__ctype = 1 function cls.new(...) local instance = cls.__create(...) -- copy fields from class to native object for k,v in pairs(cls) do instance[k] = v end instance.class = cls instance.ctor(...) return instance end else -- inherited from Lua Object if super then cls = clone(super) cls.super = super else cls = {ctor = function() end} end cls.__cname = classname cls.__ctype = 2 -- lua cls.__index = cls function cls.new(...) local instance = setmetatable({},cls) instance.class = cls instance.ctor(...) return instance end end return cls end (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |