cocos2d-x 获取spine边界框

Rect SkeletonRenderer::getBoundingBox2(const std::string& name) const {
    float minX = FLT_MAX, minY = FLT_MAX, maxX = FLT_MIN, maxY = FLT_MIN;
    float scaleX = getScaleX(), scaleY = getScaleY();
    for (int i = 0; i < _skeleton->slotsCount; ++i) {
        spSlot* slot = _skeleton->slots;
        if (!slot->attachment) continue;
        int verticesCount;
        if (slot->attachment->type == SP_ATTACHMENT_BOUNDING_BOX)
        {
            if (slot->attachment->name == name)
            {
                spBoundingBoxAttachment* spa = (spBoundingBoxAttachment*)slot->attachment;
                spBoundingBoxAttachment_computeWorldVertices(spa, slot->bone, _worldVertices);
                verticesCount = spa->verticesCount;
                for (int ii = 0; ii < verticesCount; ii += 2) {
                    float x = _worldVertices[ii] * scaleX, y = _worldVertices[ii + 1] * scaleY;
                    minX = min(minX, x);
                    minY = min(minY, y);
                    maxX = max(maxX, x);
                    maxY = max(maxY, y);
                }


            }
        }

    }
    Vec2 position = getPosition();
    return Rect(position.x + minX, position.y + minY, maxX - minX, maxY - minY);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值