2012-07-12 73 views
0

我的圖像看起來像有太多的黑色。我使用功能setBlendFunccocos2dX setBlendFunc

但是,當精靈不運行Animate時,它將工作。如果運行,它不起作用。這怎麼解決?

CCSprite *effectSprite=CCSprite::create("init_black.png"); 
effectSprite->setBlendFunc((ccBlendFunc) {GL_ONE, GL_ONE}); 
SoliderSprite *enemySolider=(SoliderSprite *)(enemy->objectAtIndex(0)); 
CCArray *position=enemySolider->soliderPosition; 
position->retain(); 
cout<<((CCString *)position->objectAtIndex(0))->intValue()<<endl; 
effectSprite->setPosition(ccp(((CCString *)position->objectAtIndex(0))->intValue(),((CCString *)position->objectAtIndex(1))->intValue())); 
this->addChild(effectSprite); 
string effectString="effect"; 
if(this->direction) 
{ 
    msg.property[1].append("L"); 
} 
else 
{ 
    msg.property[1].append("R"); 
} 

CCAnimate *effectAction=animate->createWithKind(msg.property[1],effectString.c_str(),2); 
effectSprite->runAction(effectAction); 

position->release(); 

回答

1

看來這是一個錯誤,新版本沒有這個問題。 試試這個代碼的cocos2d-x的2.1.5版本:

CCSprite someSprite = CCSprite.spriteWithFile("someImage"); 
ccBlendFunc someBlend = new ccBlendFunc(); 
someBlend.src = OGLES.GL_ONE; 
someBlend.dst = OGLES.GL_ONE; 
someSprite.BlendFunc = someBlend; 
-1

我想渲染模式是不是你想要顯示的最終效果是什麼。 使用方法:

SRC = GL_SRC_ALPHA, 
SRC = GL_ONE_MINUS_SRC_ALPHA