将大表分解成小表

我尝试将一个包含许多嵌套表格的表格,根据某些Y坐标和对象类型值的顺序放置。我想将这个"主"表格按Y位置首先排序,然后依赖于类型(文本或线条)进行排序。

现在,我所能想到的就是将两个包含在Y轴200点以上和以下对象的表格放置在一起。从而得到两个不同对象类型的表格;线条和文本。

我无法在我的代码中超出某个点,在这个点上我有相同的“for”循环出现在每个表格中。为了保持每种类型的物体的“从上到下”的观点,我这样做。理想情况下,我希望为我的表格(并希望将其放置到更大的表格中以供使用)维护以下顺序:

< 201 用于文本

< 201 用于线条

200 用于文本

200 用于线条

到目前为止,这是我所拥有的(其中objTable是包含所有众多对象的主表,在其中每个对象都是它们自己的表):

 本地偏移=0
 local upperObjTbl, lowerObjTbl, upperLineTbl, lowerLineTbl={}, {}, {}, {}
 对于objKey,object in pairs(objTable) do
     if tonumber(object.y)<201且object.object~="line" then
        offset = totalOffset+object.offset
        table.insert(lowerObjTbl,#lowerObjTbl+1,对象)
     end
 end
 对于objKey,object in pairs(objTable) do
     if tonumber(object.y)<201且object.object=="line" then
        offset = totalOffset+object.offset
        table.insert(lowerObjTbl,#lowerObjTbl+1,对象)
     end
 end
 对于objKey,object in pairs(objTable) do
     if tonumber(object.y)>200且object.object~="line" then
        offset = totalOffset+object.offset
        table.insert(higherObjTbl,#higherObjTbl+1,对象)
     end
 end
 对于objKey,object in pairs(objTable) do
     if tonumber(object.y)>200且object.object=="line" then
        offset = totalOffset+object.offset
        table.insert(higherObjTbl,#higherObjTbl+1,对象)
     end
 end

理想情况下,我希望发生的是将这个压缩到一个更好的“for”循环中,无论它是什么类型的对象或Y轴上的位置,都按Y轴顺序(从低到高)和文本排序在线路之前。

点赞