2012-07-12 63 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