cocos2d-x中CCMenu::alignItemsHorizontallyWithPadding方法

alignItemsHorizontallyWithPadding是设置当前菜单中所有元素的坐标,是这些元素间隔相等的距离,具体间隔的距离就是玩家传入的参数。

void CCMenu::alignItemsHorizontallyWithPadding(float padding)

{

    float width = -padding;

    if (m_pChildren && m_pChildren->count() > 0)

    {

        CCObject* pObject = NULL;

        CCARRAY_FOREACH(m_pChildren, pObject)

        {

            CCNode* pChild = dynamic_cast<CCNode*>(pObject);

            if (pChild)

            {

                width += pChild->getContentSize().width * pChild->getScaleX() + padding;

            }

        }

    }

   //上面这部分代码算出所有元素包括间隔所占的总宽度。初始width = -padding加上最后一个元素width所加的padding正好可以把两边的减去。


    float x = -width / 2.0f;

    if (m_pChildren && m_pChildren->count() > 0)

    {

        CCObject* pObject = NULL;

        CCARRAY_FOREACH(m_pChildren, pObject)

        {

            CCNode* pChild = dynamic_cast<CCNode*>(pObject);

            if (pChild)

            {

                pChild->setPosition(ccp(x + pChild->getContentSize().width * pChild->getScaleX() / 2.0f, 0));

                 x += pChild->getContentSize().width * pChild->getScaleX() + padding;

            }

        }

    }

//上面是设置所有元素的坐标。这里初始 float x = -width / 2.0f,是因为CCMenu的起始坐标点在中心吗?不懂~~~

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值