本文共 849 字,大约阅读时间需要 2 分钟。
上面有一个Node,里面加入了很多节点,有CCSprite等等,怎么计算整个Node的大小。
思路:Node的宽度:maxX - minX;高度:maxY - minY.
maxX = 所有子节点的X的最大值;(这个值不是位置,而是包含了大小的边界)
minX = 所有子节点的X的最小值;
maxY = 所有子节点的Y的最大值;
minY = 所有子节点的Y的最小值;
local children = tolua.cast(awardNode,"CCNode"):getChildren() local firstChild = tolua.cast(children:objectAtIndex(0) , "CCNode") local minX = 第一个节点的左边界 local maxX = 第一个节点的右边界 local minY = 第一个节点的下(Y)边界 local maxY = 第一个节点的上(Y)边界 for i=1,(children:count()-1) do local child = tolua.cast(children:objectAtIndex(i) , "CCNode") local min_X = 节点的左边界 local max_X = 节点的右边界 local min_Y = 节点的下(Y)边界 local max_Y = 节点的上(Y)边界 if min_X < minX then minX = min_X end if max_X > maxX then maxX = max_X end if min_Y < minY then minY = min_Y end if max_Y > maxY then maxY = max_Y end end local width, height = maxX - minX, maxY - minY awardNode:setContentSize(CCSize(width, height))