一般情况下,我们使用sprite->getBoundingBox()->containsPoint(touchLocation)
来判断是否触摸到了一个精灵.
需求是万变的,经常需求要求我们触摸时判断一个不规则图形
1 2 3 4 5 6 7 8 9 10 11 |
CCRenderTexture* render = CCRenderTexture::create(CCDirector::sharedDirector()->getWinSize().width, CCDirector::sharedDirector()->getWinSize().height); render->begin(); sprite->visit(); GLubyte pColor[4]; glReadPixels(location.x,location.y,1,1,GL_RGBA,GL_UNSIGNED_BYTE,&pColor[0]); if (pColor[3] != 0) { render->end(); return false; } render->end(); return true; |
3.x 以后的渲染是异步渲染了, 即使能调用成功, 也不能在
begin()
end()
中间使用 glReadPixels 来获像素点了
恩 这是2.x时使用的代码
那3.0 应该怎么办呢,有没有好的处理办法