大侠来把!cocos2dx 3.4 Button 去透明区域点击事件问题!

Button 新增如下方法:主要是参考网上的方法,点击按钮时像素取出来的都是一个值!还请各位大虾看看那里出问题了!!!
目的主要是做不规则按钮!!
bool Button::AlphaTouchCheck(const Vec2 &point)
{
CCLOG(“point.x %f,point.y = %f”,point.x,point.y);
bool isTouchClaimed = false;
bool is_alpha = getAlphaTouchEnable();
if (is_alpha)
{
// check claimed touch arena
Size winSize = cocos2d::Director::getInstance()->getWinSize();
Sprite* selectSprite = (Sprite*)getVirtualRenderer();
Vec2 cutPos = selectSprite->getPosition();

    // get screen point
    Vec2 wordpx = selectSprite->getParent()->convertToWorldSpace(cutPos);
    selectSprite->setPosition(wordpx);

    RenderTexture *renderer = RenderTexture::create(winSize.width, winSize.height);

// renderer->beginWithClear(0,0,0,0);
renderer->begin();

    bool visible = selectSprite->isVisible();
    if (visible)
    {
        selectSprite->visit();
    }
    else
    {
        selectSprite->setVisible(true);
        selectSprite->visit();
        selectSprite->setVisible(false);
    }
    
    GLubyte pixelColors;

#if ( CC_TARGET_PLATFORM != CC_PLATFORM_WIN32)
glReadPixels(point.x, point.y, 1, 1, GL_RGBA, GL_UNSIGNED_BYTE, &pixelColors);
#else
glReadPixels(point.x, point.y, 1, 1, GL_ALPHA, GL_UNSIGNED_BYTE, &pixelColors);
#endif

    int alpha = pixelColors;
    CCLOG("----alpha %d", alpha);
    
    renderer->end();
    
    selectSprite->setPosition(cutPos);
    CCLOG("----------------");
    CCLOG("wordpx.X =%f,wordpx.Y %f",wordpx.x,wordpx.y);
    CCLOG("point.x =%f,point.Y %f",point.x,point.y);
    CCLOG("r%d,g%d,b%d,p%d", pixelColors,pixelColors,pixelColors,pixelColors);
    CCLOG("----------------");
    if (alpha <= 20)
    {
        isTouchClaimed = false;
    }
    else
    {
        isTouchClaimed = true;
    }
    // check claimed touch arena
}
else
{
    isTouchClaimed = true;
}
return isTouchClaimed;

}

http://blog.csdn.net/canjiangmengyuan/article/details/46516481

感谢感谢。用了您提供的方法果然好用!!!!!:2: