Lua 中如何知道某个节点是否继承某种类??

比如 遍历了某个node的所有孩子节点,如何判定此孩子节点是否是sprite或者widget又或者就是node,好比C++中的动态类型转换 dynamic_cast 一样,可以对继承关系进行判断,查了一下tolua_cast好像没有做类型判断

当然可以自己封装接口C++接口再自己使用tolua导出

就是想确认下现在的cocos引擎里面是否有这样的方法,又或者有其他的方式可以确认

function iskindof(obj, classname)
local t = type(obj)
local mt
if t == “table” then
mt = getmetatable(obj)
elseif t == “userdata” then
mt = tolua.getpeer(obj)
end

while mt do
    if mt.__cname == classname then
        return true
    end
    mt = mt.super
end

return false

end

谢谢你的回答,不过测试了发现 tolua.getpeer 返回的都是nil

问题已解决

直接使用 tolua.iskindof(obj, classname) 判断即可

在 cocos->cocos2d->functions.lua 中也现实了此接口的 iskindof(obj, classname)