博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
cocos2dx CCNode计算node的大小
阅读量:4214 次
发布时间:2019-05-26

本文共 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))

你可能感兴趣的文章
AtomicInteger源码解析
查看>>
CopyOnWriteArraySet源码学习
查看>>
Openfiler 配置 NFS 示例
查看>>
Oracle 11.2.0.1 RAC GRID 无法启动 : Oracle High Availability Services startup failed
查看>>
Oracle 18c 单实例安装手册 详细截图版
查看>>
Oracle Linux 6.1 + Oracle 11.2.0.1 RAC + RAW 安装文档
查看>>
Oracle 11g 新特性 -- Online Patching (Hot Patching 热补丁)说明
查看>>
Oracle 11g 新特性 -- ASM 增强 说明
查看>>
Oracle 11g 新特性 -- Database Replay (重演) 说明
查看>>
Oracle 11g 新特性 -- 自动诊断资料档案库(ADR) 说明
查看>>
Oracle 11g 新特性 -- RMAN Data Recovery Advisor(DRA) 说明
查看>>
CSDN博客之星 投票说明
查看>>
Oracle wallet 配置 说明
查看>>
Oracle smon_scn_time 表 说明
查看>>
VBox fdisk 不显示 添加的硬盘 解决方法
查看>>
Secure CRT 自动记录日志 配置 小记
查看>>
RMAN RAC 到 单实例 duplicate 自动分配通道 触发 ORA-19505 错误
查看>>
mysql 随机分页的优化
查看>>
DB2快速创建测试库
查看>>
利用db2look查看ddl
查看>>