bool XiaoboWriteLayer::init(){ if (!CCLayer::init()) { return false; } CCDrawNode* bg=CCDrawNode::create(); bg->setAnchorPoint(ccp(0, 0)); bg->setPosition(ccp(0, 0)); this->addChild(bg); bg->drawSegment(ccp(20,20), ccp(50,50), 10, ccc4f(0, 1, 0, 1)); CCPoint points[] = { CCPoint(0,0), CCPoint(400,0), CCPoint(400,400), CCPoint(0,400) }; bg->drawPolygon(points, sizeof(points)/sizeof(points[0]),ccc4FFromccc3B(ccc3(253,249,238)), 3,ccc4FFromccc3B(ccc3(84,85,104))); CCLabelTTF* hanziLabelBg=CCLabelTTF::create(m_hanzi->getzi().c_str(), "KaiTi.ttf", 400); hanziLabelBg->setPosition(ccp(200,400)); hanziLabelBg->setFontFillColor(ccc3(255, 255, 255)); hanziLabelBg->enableStroke(ccc3(0, 0, 0), 1); hanziLabelBg->setAnchorPoint(ccp(0.5, 1)); hanziLabelBg->setTag(TAG_HANZI_LABEL); this->addChild(hanziLabelBg); m_draw=CCDrawNode::create(); this->addChild(m_draw); m_parseredHanzi->step(); CCPoint startPoint=m_parseredHanzi->getTempPoint(); switch (m_gamePlayer) { case kGamePlayerXiaobo:{ m_touxiang=CCSprite::createWithSpriteFrameName("pet_touxiang.png"); // m_touxiang->setScale(0.5); m_touxiang->setPosition(startPoint); this->addChild(m_touxiang); } break; case kGamePlayerWo:{ m_touxiang=CCSprite::createWithSpriteFrameName("pet_pencil.png"); m_touxiang->setScale(0.5); m_touxiang->setPosition(startPoint); m_touxiang->setAnchorPoint(ccp(0, 0)); this->addChild(m_touxiang); } break; } return true; }
void XiaoboWriteLayer::loop(float t){ CCPoint start=m_parseredHanzi->getTempPoint(); HanziStepStatus status=m_parseredHanzi->step(); CCPoint end=m_parseredHanzi->getTempPoint(); m_touxiang->setPosition(end); switch (status) { case kHanziStepMiddlePoint: case kHanziStepStrokeEnd: m_draw->drawSegment(start, end, 10, ccc4FFromccc3B(ccc3(100,53,14))); break; case kHanziStepHanziEnd:{ m_delegate->xiaoboEndCallBack(); } default: break; } }
void CCRectNode::draw() { const ccColor3B& tColor(getColor()); CCPoint tOrigin(isIgnoreAnchorPointForPosition() ? CCPointZero : getAnchorPointInPoints()); CCPoint tDestination(ccpShift(tOrigin, getContentSize())); if (m_bFill) { ccColor4F tColor4F(ccc4FFromccc3B(tColor)); tColor4F.a = getOpacity() / 255.0f; ccDrawSolidRect(tOrigin, tDestination, tColor4F); } else { ccDrawColor4B(tColor.r, tColor.g, tColor.b, getOpacity()); ccDrawRect(tOrigin, tDestination); } }
//-------------------------------------------------------- // CColorSpriteScene //-------------------------------------------------------- CRemoveBKSpriteScene::CRemoveBKSpriteScene() { CCLayerColor *layer = CCLayerColor::create( ccc4BFromccc4F(ccc4FFromccc3B( ccGRAY ))); layer->setColor( ccGRAY ); addChild(layer); CCSize winSize = CCDirector::sharedDirector()->getWinSize(); CRemoveBKSprite* pRemoveSprite = CRemoveBKSprite::Create( s_szRemoveBKSprite ); if( pRemoveSprite ) { pRemoveSprite->setPosition(ccp(winSize.width / 2 + pRemoveSprite->getContentSize().width / 2 , winSize.height / 2)); layer->addChild( pRemoveSprite ); } CCSprite* pNormalSprite = CCSprite::create( s_szRemoveBKSprite ); if( pNormalSprite ) { pNormalSprite->setPosition(ccp(winSize.width / 2 - pNormalSprite->getContentSize().width / 2 , winSize.height / 2)); layer->addChild( pNormalSprite ); } }
void GameLayer::generateBackground() { //CCSize textureSize = CCSizeMake(screenW, screenH); int textureSize = 512; ccColor3B c = (ccColor3B){140,205,221}; //ccColor3B c = generateDarkColor(); ccColor4F cf = ccc4FFromccc3B(c); //CCRenderTexture *rt = [CCRenderTexture renderTextureWithWidth:textureSize.width height:textureSize.height]; CCRenderTexture * rt = CCRenderTexture::renderTextureWithWidthAndHeight(textureSize, textureSize); //[rt beginWithClear:(float)c.r/256.0f g:(float)c.g/256.0f b:(float)c.b/256.0f a:1]; rt->beginWithClear(cf.r, cf.g, cf.b, cf.a); // layer 1: gradient float gradientAlpha = 0.25f; glDisable(GL_TEXTURE_2D); glDisableClientState(GL_TEXTURE_COORD_ARRAY); CCPoint vertices[4]; ccColor4F colors[4]; int nVertices = 0; vertices[nVertices] = ccp(0, 0); colors[nVertices++] = (ccColor4F){1, 1, 1, 0}; vertices[nVertices] = ccp(textureSize, 0); colors[nVertices++] = (ccColor4F){1, 1, 1, 0}; vertices[nVertices] = ccp(0, textureSize); colors[nVertices++] = (ccColor4F){1, 1, 1, gradientAlpha}; vertices[nVertices] = ccp(textureSize, textureSize); colors[nVertices++] = (ccColor4F){1, 1, 1, gradientAlpha}; glVertexPointer(2, GL_FLOAT, 0, vertices); glColorPointer(4, GL_FLOAT, 0, colors); glBlendFunc(GL_SRC_ALPHA, GL_ONE); glDrawArrays(GL_TRIANGLE_STRIP, 0, (GLsizei)nVertices); glEnableClientState(GL_TEXTURE_COORD_ARRAY); glEnable(GL_TEXTURE_2D); // layer 2: noise //CCSprite *s = [CCSprite spriteWithFile:@"noise.png"]; CCSprite *s = CCSprite::spriteWithFile("noise.png"); CCSize winSize = CCDirector::sharedDirector()->getWinSize(); //[s setBlendFunc:(ccBlendFunc){GL_DST_COLOR, GL_ZERO}]; s->setBlendFunc((ccBlendFunc){GL_DST_COLOR, GL_ZERO}); //s.position = ccp(textureSize.width/2, textureSize.height/2); s->setPosition(ccp(textureSize/2, textureSize/2)); //s.scale = (float)textureSize/512.0f; s->setScale((float)textureSize/512.0f); //s->setScaleX(winSize.width/s->getContentSize().width); //s->setScaleY(winSize.height/s->getContentSize().height); glColor4f(1,1,1,1); //[s visit]; s->visit(); //[rt end]; rt->end(); //self.background = [CCSprite spriteWithTexture:rt.sprite.texture]; setBackground(CCSprite::spriteWithTexture(rt->getSprite()->getTexture())); ccTexParams tp = {GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT}; //[_background.texture setTexParameters:&tp]; getBackground()->getTexture()->setTexParameters(&tp); //_background.position = ccp(screenW/2,screenH/2); getBackground()->setPosition(ccp(screenW/2,screenH/2)); // _background.scale = 0.5f; getBackground()->setScaleX(winSize.width/getBackground()->getContentSize().width); getBackground()->setScaleY(winSize.height/getBackground()->getContentSize().height); //return [CCSprite spriteWithTexture:rt.sprite.texture]; //return CCSprite::spriteWithTexture(rt->getSprite()->getTexture()); addChild(getBackground()); }