求教一个奇怪的图片混合问题

  • 本帖最后由 bumblebee 于 2013-3-7 22:44 编辑 *

关键部分代码如下:

            //左边的sprite
            CCSprite* s1 = CCSprite::create( "image.png" );
            s1->setPosition(ccp(100, 100));
            addChild(s1);

            CCSprite* temp = CCSprite::create( "image.png" );
            CCSize srcContent = temp ->getContentSize(); 
            temp ->setPosition( ccp(srcContent.width/2, srcContent.height/2) );
            CCRenderTexture * rt = CCRenderTexture::create(srcContent.width, srcContent.height,kTexture2DPixelFormat_RGBA8888); 
            ccBlendFunc blendFunc = { 1, 0 }; 
            temp ->setBlendFunc(blendFunc); 
            rt->begin(); 
            temp ->visit(); 
            rt->end(); 

            //右边的sprite
            CCSprite* s2 = CCSprite::createWithTexture(rt->getSprite()->getTexture()); 
            s2->setPosition(ccp(200, 100));
            s2->setFlipY(true);
            addChild(s2);

img.png是一个左半部分不透明,右半部分半透明的黄色图片

964
两个sprite按照我的写法,应该是一模一样的样子吧?但是显示出来的话却不一样:

963

求教各位这到底是为什么??

— Begin quote from ____

重明鸟 发表于 2013-3-11 16:12 url

把背景色改成白色

— End quote

首先这这个问题的关键在于,两个sprite半透明部分的色值为何是不一样的?
事实上,右边的sprite的半透明部分明显要黑很多,所以才会在相同的背景色上有不同的混合效果。

因此其次,即使换成白色背景色,看起来也是有不一样的,所以这并没有解决我的问题。