require("luaScript.Tools.Nodes.CCNode") cc.Node3D.ClassName = "Node3D"; function cc.Node3D:extend(node) end function cc.Node3D:cloneLua(node) end function cc.Node3D:saveToXmlNode(xmlNode) cc.Node.saveToXmlNode(self , xmlNode); end function cc.Node3D:loadFromXmlNode(xmlNode) cc.Node.loadFromXmlNode(self , xmlNode); end function cc.Node3D:createNode() local node = cc.Node3D:create(); self:extend(node); return node; end -- 获得选择框,用来编辑器框选的,其中xy是盒子左下角坐标,width/height是盒子宽高 function cc.Node3D:getSelectRect() local anchor = self:getAnchorPointInPoints(); return cc.rect(-anchor.x , -anchor.y , self:getContentSize().width , self:getContentSize().height); end -- 计算矩形rect是否跟节点相交,用来给编辑器框选的 function cc.Node3D:selectTest(rect) local selectRect = self:getSelectRect(); -- 计算左下角的世界坐标 local pos = self:getParent():convertToWorldSpace(cc.p(self:getPositionX() + selectRect.x , self:getPositionY() + selectRect.y)); -- 计算包围盒 local box = cc.Rectangle:new(pos.x , pos.y , selectRect.width , selectRect.height); -- 看是否相交 return cc.rectIntersectsRect(rect , box) end