void BalloonItemClick::initClickMenu(CCSprite* pSpriteIcon) { // 加载按钮图形 CCSpriteFrameCache::sharedSpriteFrameCache()->addSpriteFramesWithFile("texture/items/items.plist"); // 创建按钮 CCMenuItemImage* pMenuItemImage = CCMenuItemImage::create(); // 设置按钮的图片 // pMenuItemImage->setNormalImage(CCSprite::create("texture/items/item_btn_normal.png")); pMenuItemImage->setNormalSpriteFrame(CCSpriteFrameCache::sharedSpriteFrameCache()->spriteFrameByName("item_btn_normal.png")); // pMenuItemImage->setSelectedSpriteFrame(CCSpriteFrameCache::sharedSpriteFrameCache()->spriteFrameByName("item_btn_normal.png")); // 顺便这里更新下控件的大小 setContentSize(pMenuItemImage->getContentSize()); // 设置按下后的回调函数 pMenuItemImage->setTarget(this, menu_selector(BalloonItemClick::onPressMenuClick)); // 设置按钮 m_pMenuClick = CCMenu::create(); m_pMenuClick->addChild(pMenuItemImage); CC_SAFE_RETAIN(m_pMenuClick); // 设置按钮居中对齐 m_pMenuClick->setPosition(ccpMult(ccpFromSize(getContentSize()), 0.5f)); // 设置按下后的图片放大效果 ControlUtil::sharedControlUtil()->SetMenuItemSelectedImageWithNormalImage(m_pMenuClick, 1.2f); // 添加到界面上 addChild(m_pMenuClick); m_pSpriteIcon = pSpriteIcon; m_pSpriteIcon->setPosition(ccpMult(ccpFromSize(getContentSize()), 0.5f)); CC_SAFE_RETAIN(m_pSpriteIcon); addChild(m_pSpriteIcon); }
void CCMenuItemSprite::setAnchorPoint(cocos2d::CCPoint const & anchorPoint) { CCMenuItem::setAnchorPoint(anchorPoint); if (m_pNormalImage) { m_pNormalImage->setAnchorPoint(anchorPoint); m_pNormalImage->setPosition(ccpCompMult(ccpFromSize(this->getContentSize()), this->getAnchorPoint())); } if (m_pSelectedImage) { m_pSelectedImage->setAnchorPoint(anchorPoint); m_pSelectedImage->setPosition(ccpCompMult(ccpFromSize(this->getContentSize()), this->getAnchorPoint())); } if (m_pDisabledImage) { m_pDisabledImage->setAnchorPoint(anchorPoint); m_pDisabledImage->setPosition(ccpCompMult(ccpFromSize(this->getContentSize()), this->getAnchorPoint())); } }
void CompanyPage::onEnter() { CCLayerColor::onEnter(); // 得到中心点坐标 CCSize sizeVisible = CCDirector::sharedDirector()->getVisibleSize(); CCPoint posCenter = ccpMult(ccpFromSize(sizeVisible), 0.5f); // 右边进入 m_pSpriteLogo->setPosition(ccp(sizeVisible.width, posCenter.y)); m_pSpriteLogo->runAction(CCEaseBounceOut::create(CCMoveTo::create(1.3f, posCenter))); // 左边进入 m_pSpriteEnglishName->setAnchorPoint(ccp(0.5f, 0)); m_pSpriteEnglishName->setPosition(ccp(0, m_pSpriteLogo->getPositionY() + m_pSpriteLogo->getContentSize().height*1.0f)); m_pSpriteEnglishName->runAction(CCEaseBounceOut::create(CCMoveTo::create(1.1f, ccp(posCenter.x, m_pSpriteEnglishName->getPositionY())))); // 左边进入 m_pSpriteChineseName->setAnchorPoint(ccp(0.5f, 1.0f)); m_pSpriteChineseName->setPosition(ccp(0, m_pSpriteLogo->getPositionY() - m_pSpriteLogo->getContentSize().height*1.0f)); m_pSpriteChineseName->runAction(CCEaseBounceOut::create(CCMoveTo::create(1.5f, ccp(posCenter.x, m_pSpriteChineseName->getPositionY())))); // 整体变暗 m_pLayerColorMask->runAction(CCSequence::create(CCFadeOut::create(3.0f), CCDelayTime::create(1.0f), CCFadeIn::create(3.0f), CCCallFunc::create(this, callfunc_selector(CompanyPage::showGameScene)), NULL)); addChild(m_pSpriteEnglishName); addChild(m_pSpriteChineseName); addChild(m_pSpriteLogo); addChild(m_pLayerColorMask); }
void PhotonLoadBalancingTest::onEnter() { CCLayer::onEnter(); CCSize winSize = CCDirector::sharedDirector()->getWinSize(); CCPoint winCenter = ccpMult( ccpFromSize( winSize ), 0.5f ); //_listener = new StdIO_UIListener(); this->setContentSize(winSize); CCLobbyView* lobbyView = CCLobbyView::create( new CCNetworkLogic(), winSize ); this->addChild( lobbyView ); /*ConnectButton* connect = ConnectButton::create(); CCPoint position = ccpMult( ccpFromSize( winSize ), 0.5f ); position.x -= 100; position.y -= 100; connect->setPosition( position ); this->addChild( connect ); SendButton* send = SendButton::create(); position.x += 200; send->setPosition( position ); this->addChild( send );*/ this->scheduleUpdate(); }
void DreamSpaceTest::onEnter() { CCLayer::onEnter(); CCSize winSize = CCDirector::sharedDirector()->getWinSize(); CCPoint winCenter = ccpMult( ccpFromSize( winSize ), 0.5f ); //_listener = new StdIO_UIListener(); this->setContentSize(winSize); PMSGameScene* lobbyView = PMSGameScene::create(); this->addChild( lobbyView ); /*ConnectButton* connect = ConnectButton::create(); CCPoint position = ccpMult( ccpFromSize( winSize ), 0.5f ); position.x -= 100; position.y -= 100; connect->setPosition( position ); this->addChild( connect ); SendButton* send = SendButton::create(); position.x += 200; send->setPosition( position ); this->addChild( send );*/ this->scheduleUpdate(); }
void RawStencilBufferTest6::setup() { #if (CC_TARGET_PLATFORM == CC_PLATFORM_WIN32) || (CC_TARGET_PLATFORM == CC_PLATFORM_LINUX) || (CC_TARGET_PLATFORM == CC_PLATFORM_MAC) CCPoint winPoint = ccpFromSize(CCDirector::sharedDirector()->getWinSize()); unsigned char bits = 0; glStencilMask(~0); glClearStencil(0); glClear(GL_STENCIL_BUFFER_BIT); glFlush(); glReadPixels(0, 0, 1, 1, GL_STENCIL_INDEX, GL_UNSIGNED_BYTE, &bits); CCLabelTTF *clearToZeroLabel = CCLabelTTF::create(CCString::createWithFormat("00=%02x", bits)->getCString(), "Arial", 20); clearToZeroLabel->setPosition( ccp((winPoint.x / 3) * 1, winPoint.y - 10) ); this->addChild(clearToZeroLabel); glStencilMask(0x0F); glClearStencil(0xAA); glClear(GL_STENCIL_BUFFER_BIT); glFlush(); glReadPixels(0, 0, 1, 1, GL_STENCIL_INDEX, GL_UNSIGNED_BYTE, &bits); CCLabelTTF *clearToMaskLabel = CCLabelTTF::create(CCString::createWithFormat("0a=%02x", bits)->getCString(), "Arial", 20); clearToMaskLabel->setPosition( ccp((winPoint.x / 3) * 2, winPoint.y - 10) ); this->addChild(clearToMaskLabel); #endif glStencilMask(~0); RawStencilBufferTest::setup(); }
bool ControlEngine::init( const char* backgroundName, const char* progressIndicatorName, const char* demandIndicatorName ) { if( super::init() ) { this->setBackgroundName( backgroundName ); this->setProgressIndicatorName( progressIndicatorName ); this->setDemandIndicatorName( demandIndicatorName ); CCSprite* background = CCSprite::create( backgroundName ); CCSize size = background->getContentSize(); CCPoint sizePoint = ccpFromSize(size); CCPoint center = ccpMult( sizePoint, 0.5f ); this->setContentSize( size ); this->ignoreAnchorPointForPosition( false ); background->setPosition( center ); this->addChild( background, Child::Z::background, Child::CCSprite_background ); this->initProgressIndicator( Child::CCProgressTimer_foreProgressIndicator, center, ccp( 0.5f, 0 ) ); this->initProgressIndicator( Child::CCProgressTimer_aftProgressIndicator, center, ccp( 0.5f, 1 ) ); CCSprite* demandIndicator = CCSprite::create( demandIndicatorName ); demandIndicator->setPosition( ccp( size.width * 0.5f, 0.0f ) ); this->addChild( demandIndicator, Child::Z::demandIndicator, Child::CCSprite_demandIndicator ); return true; } return false; }
void BalloonItemClick::updateLeftCntsLabel() { if (!m_pLabelBMFontCnts) { m_pLabelBMFontCnts = CCLabelBMFont::create("", "texture/fonts/font.fnt"); m_pLabelBMFontCnts->setPosition(ccpFromSize(m_pSpriteIcon->getContentSize())); m_pSpriteIcon->addChild(m_pLabelBMFontCnts); } m_pLabelBMFontCnts->setCString(CCString::createWithFormat("%lu", m_ulClickCounts)->getCString()); }
void Pull2RefreshTableView::updateFooterNodePosition() { // update the footer node position if (m_pNodeFooter && m_pNodeFooter->getParent()) { // set anchor point to center m_pNodeFooter->setAnchorPoint(ccp(0.5f, 0.5f)); // set middle of parent node m_pNodeFooter->setPosition(ccpMult(ccpFromSize(m_pNodeFooter->getParent()->getContentSize()), 0.5f)); } }
bool CPKDlg::init() { CCLayer::init(); m_pLeftPhoto = m_pRightPhoto = NULL ; m_pDelegate = NULL ; CCNodeLoaderLibrary* plib = CCNodeLoaderLibrary::sharedCCNodeLoaderLibrary(); CCBReader* pReader = new CCBReader(plib); CCNode* pnode = pReader->readNodeGraphFromFile("PkDlg.ccbi",this); pnode->setPosition(ccpMult(ccpFromSize(getContentSize()), 0.5)) ; addChild(pnode) ; m_pAnimate = pReader->getAnimationManager() ; m_pAnimate->setDelegate(this); pReader->autorelease() ; return true ; }
bool MainMenu::init() { if( CCMenu::init() && this->initPassAndPlay() && this->initQuit() ) { CCDirector* director = CCDirector::sharedDirector(); CCSize winSize = director->getWinSize(); CCPoint winSizePoint = ccpFromSize( winSize ); CCPoint center = ccpMult( winSizePoint, 0.5f ); /*char str[128] = { '\0' }; sprintf( str, "width %lf, height %lf", winSize.width, winSize.height ); CCLabelTTF* label = CCLabelTTF::create( str, "American Typewriter.ttf", 16 ); label->setPosition( center ); this->getChildByTag( Child::CCMenuItem_playOnline )->addChild( label );*/ this->alignItemsVertically(); return true; } return false; }
void RawStencilBufferTest::draw() { CCPoint winPoint = ccpFromSize(CCDirector::sharedDirector()->getWinSize()); CCPoint planeSize = ccpMult(winPoint, 1.0 / _planeCount); glEnable(GL_STENCIL_TEST); CHECK_GL_ERROR_DEBUG(); for (int i = 0; i < _planeCount; i++) { CCPoint stencilPoint = ccpMult(planeSize, _planeCount - i); stencilPoint.x = winPoint.x; CCPoint spritePoint = ccpMult(planeSize, i); spritePoint.x += planeSize.x / 2; spritePoint.y = 0; m_pSprite->setPosition( spritePoint ); this->setupStencilForClippingOnPlane(i); CHECK_GL_ERROR_DEBUG(); ccDrawSolidRect(CCPointZero, stencilPoint, ccc4f(1, 1, 1, 1)); kmGLPushMatrix(); this->transform(); m_pSprite->visit(); kmGLPopMatrix(); this->setupStencilForDrawingOnPlane(i); CHECK_GL_ERROR_DEBUG(); ccDrawSolidRect(CCPointZero, winPoint, _planeColor[i]); kmGLPushMatrix(); this->transform(); m_pSprite->visit(); kmGLPopMatrix(); } glDisable(GL_STENCIL_TEST); CHECK_GL_ERROR_DEBUG(); }
void CCMenuItemSprite::setDisabledImage(CCNode* pImage) { if (pImage != m_pNormalImage) { if (pImage) { addChild(pImage, 0, kDisableTag); pImage->setAnchorPoint(this->getAnchorPoint()); pImage->setPosition(ccpCompMult(ccpFromSize(this->getContentSize()), this->getAnchorPoint())); } if (m_pDisabledImage) { removeChild(m_pDisabledImage, true); } m_pDisabledImage = pImage; this->updateImagesVisibility(); } }
bool RotationTest::init() { if(!TestLayer::init()) return false; m_title = "Rotation Test"; CCSize winSize = CCDirector::sharedDirector()->getWinSize(); MovableObject* object = MovableObject::create(); object->addChild(CCSprite::spriteWithFile("TestObject.png")); object->setLocation(ccpFromSize(winSize)/2); addChild(object); RotateBy* actRot = RotateBy::create(2.0f, 360.0f); CCDelayTime* actDelay = CCDelayTime::actionWithDuration(1.0f); object->runAction(Sequence::create(actRot, actDelay, NULL)); return true; }
bool ControlDualEngine::init( const char* background, const char* progressIndicator, const char* demandIndicator ) { if( super::init() ) { this->setBackgroundName( background ); this->setProgressIndicatorName( progressIndicator ); this->setDemandIndicatorName( demandIndicator ); CCDirector* director = CCDirector::sharedDirector(); CCSize winSize = director->getWinSize(); CCPoint winSizePoint = ccpFromSize( winSize ); CCPoint center = ccpMult( winSizePoint, 0.5f ); this->setContentSize( winSize ); this->initEngine( Child::ControlEngine_left, ccp( 0, center.y ), ccp( 0, 0.5f ) ); this->initEngine( Child::ControlEngine_right, ccp( winSize.width, center.y ), ccp( 1, 0.5f ) ); return true; } return false; }
void HoleDemo::setup() { CCSprite *target = CCSprite::create(s_pPathBlock); target->setAnchorPoint(CCPointZero); target->setScale(3); m_pOuterClipper = CCClippingNode::create(); m_pOuterClipper->retain(); CCAffineTransform tranform = CCAffineTransformMakeIdentity(); tranform = CCAffineTransformScale(tranform, target->getScale(), target->getScale()); m_pOuterClipper->setContentSize( CCSizeApplyAffineTransform(target->getContentSize(), tranform)); m_pOuterClipper->setAnchorPoint( ccp(0.5, 0.5) ); m_pOuterClipper->setPosition( ccpMult(ccpFromSize(this->getContentSize()), 0.5f) ); m_pOuterClipper->runAction(CCRepeatForever::create(CCRotateBy::create(1, 45))); m_pOuterClipper->setStencil( target ); CCClippingNode *holesClipper = CCClippingNode::create(); holesClipper->setInverted(true); holesClipper->setAlphaThreshold( 0.05f ); holesClipper->addChild(target); m_pHoles = CCNode::create(); m_pHoles->retain(); holesClipper->addChild(m_pHoles); m_pHolesStencil = CCNode::create(); m_pHolesStencil->retain(); holesClipper->setStencil( m_pHolesStencil); m_pOuterClipper->addChild(holesClipper); this->addChild(m_pOuterClipper); this->setTouchEnabled(true); }
void RawStencilBufferTest6::setupStencilForClippingOnPlane(GLint plane) { GLint planeMask = 0x1 << plane; glStencilMask(planeMask); glStencilFunc(GL_NEVER, 0, planeMask); glStencilOp(GL_REPLACE, GL_KEEP, GL_KEEP); ccDrawSolidRect(CCPointZero, ccpFromSize(CCDirector::sharedDirector()->getWinSize()), ccc4f(1, 1, 1, 1)); glStencilFunc(GL_NEVER, planeMask, planeMask); glStencilOp(GL_REPLACE, GL_KEEP, GL_KEEP); glDisable(GL_DEPTH_TEST); glDepthMask(GL_FALSE); #if (CC_TARGET_PLATFORM == CC_PLATFORM_WIN32) || (CC_TARGET_PLATFORM == CC_PLATFORM_LINUX) || (CC_TARGET_PLATFORM == CC_PLATFORM_MAC) glEnable(GL_ALPHA_TEST); glAlphaFunc(GL_GREATER, _alphaThreshold); #else CCGLProgram *program = CCShaderCache::sharedShaderCache()->programForKey(kCCShader_PositionTextureColorAlphaTest); GLint alphaValueLocation = glGetUniformLocation(program->getProgram(), kCCUniformAlphaTestValue); program->setUniformLocationWith1f(alphaValueLocation, _alphaThreshold); m_pSprite->setShaderProgram(program); #endif glFlush(); }
bool CCLobbyView::init( CCNetworkLogic* network, const CCSize& mySize ) { if( CCLayer::init() ) { CCSize winSize = CCDirector::sharedDirector()->getWinSize(); const CCPoint& center = ccpMult( ccpFromSize( mySize ), 0.5f ); CCPoint position = CCPointZero; CCSize size = CCSizeZero; int length = 0; int fontSize = 0; this->setNetwork( network ); CCSprite* s = CCSprite::create("Images/r1.png"); s->retain(); CCRect rect = CCRectZero; rect.size = s->getContentSize(); s->release(); fontSize = 12; CCLabelTTF* label = CCLabelTTF::create( "Connect", "fonts/American Typewriter.ttf", fontSize ); label->setColor( ccc3( 0, 0, 0 ) ); CCScale9Sprite* sprite = CCScale9Sprite::create("Images/r1.png", rect, rect ); sprite->setScaleX( 1.4f ); sprite->setScaleY( 0.8f ); CCControlButton* button = CCControlButton::create( label, sprite ); button->addTargetWithActionForControlEvents( this, cccontrol_selector( CCLobbyView::connectButtonCallback ), CCControlEventTouchUpInside); button->setPreferredSize( rect.size ); position = center; position.y -= 136; position.x -= 100; button->setPosition( position ); this->setConnectButton( button ); label = CCLabelTTF::create( "Create Room", "fonts/American Typewriter.ttf", fontSize ); label->setColor( ccc3( 0, 0, 0 ) ); sprite = CCScale9Sprite::create("Images/r1.png", rect, rect ); sprite->setScaleX( 1.4f ); sprite->setScaleY( 0.8f ); button = CCControlButton::create( label, sprite ); button->addTargetWithActionForControlEvents( this, cccontrol_selector( CCLobbyView::createGameButtonCallback ), CCControlEventTouchUpInside); button->setPreferredSize( rect.size ); position = center; position.y -= 136; //position.x += 0; button->setPosition( position ); this->setCreateGameButton( button ); label = CCLabelTTF::create( "Random Room", "fonts/American Typewriter.ttf", fontSize ); label->setColor( ccc3( 0, 0, 0 ) ); sprite = CCScale9Sprite::create("Images/r1.png", rect, rect ); sprite->setScaleX( 1.6f ); sprite->setScaleY( 0.8f ); button = CCControlButton::create( label, sprite ); button->addTargetWithActionForControlEvents( this, cccontrol_selector( CCLobbyView::joinGameButtonCallback ), CCControlEventTouchUpInside); button->setPreferredSize( rect.size ); position = center; position.y -= 136; position.x += 100; button->setPosition( position ); this->setRandomGameButton( button ); this->_lobbyViewDataSource = new CCLobbyViewDataSource( this ); fontSize = 16; length = mySize.width; size = this->_lobbyViewDataSource->cellSizeForTable( NULL ); size.height *= 3; CCTableView* table = CCTableView::create( this->_lobbyViewDataSource, size ); table->setContentOffset( CCPointZero ); table->setDirection(kCCScrollViewDirectionVertical); position = center; position.x -= size.width * 0.5f; position.y -= fontSize + ( size.height * 0.17f ); table->setPosition( position ); table->setDelegate( this ); table->setVerticalFillOrder(kCCTableViewFillTopDown); this->setRoomTable( table ); table->reloadData(); fontSize = 16; label = CCLabelTTF::create("Running games:", "fonts/American Typewriter.ttf", fontSize, winSize, kCCTextAlignmentCenter, kCCVerticalTextAlignmentCenter); position = center; position.x -= size.width * 0.4f; position.y += size.height - ( fontSize * 0.5f ); label->setPosition( position ); //label->setAnchorPoint( CCPointZero ); this->setRoomTableLabel( label ); fontSize = 16; CCLabelTTF* console = CCLabelTTF::create("disconnected", "fonts/American Typewriter.ttf", fontSize, winSize, kCCTextAlignmentCenter, kCCVerticalTextAlignmentCenter); console->setColor( ccc3(255, 255, 255) ); console->setContentSize(winSize); position = center; position.y += 100; console->setPosition( position ); this->setConsole( console ); label = CCLabelTTF::create( "localhost:5055", "fonts/American Typewriter.ttf", fontSize ); position.y += fontSize; label->setPosition( position ); this->setDisplayAddress( label ); // top fontSize = 24; length = 19; size = CCSize( length * fontSize * 0.7f, fontSize * 1.7f ); CCEditBox* edit = CCEditBox::create( size, CCScale9Sprite::create( "extensions/green_edit.png" ) ); edit->setPosition( center ); edit->setFontColor(ccBLACK); edit->setPlaceHolder("ip:port"); edit->setMaxLength( 19 ); edit->setReturnType(kKeyboardReturnTypeDone); edit->setDelegate(this); position.y -= fontSize * 2; edit->setPosition( position ); this->setEditAddress( edit ); //CCChatRoom* chatroom = CCChatRoom::create(this->getNetwork()); //this->setChatRoom( chatroom ); this->scheduleUpdate(); return true; } return false; }
bool SFVideo::perform(CCDictionary * pDict, cocos2d::CCNode * pTarget) { if (!pDict) { CNLog("error"); return false; } CCString * pTask = (CCString *)pDict->objectForKey("Task"); if (!pTask) { CNLog("invalid video task"); return false; } const char * task = pTask->getCString(); CNLog("SFVideo: ******************************** %s", task); if (strlen(task) == 0) { CNLog("invalid task"); } else if (strcasecmp(task, "Init") == 0 || strcasecmp(task, "InitPlayer") == 0) { CNLog("init video player"); if (pTarget) { CCNode * pParent = pTarget->getParent(); if (pParent) { CCPoint position = ccpSub(pTarget->getPosition(), pTarget->getAnchorPointInPoints()); CCPoint p2 = ccpAdd(position, ccpFromSize(pTarget->getContentSize())); position = pParent->convertToWorldSpace(position); p2 = pParent->convertToWorldSpace(p2); SFVideo_initPlayer(position.x, position.y, p2.x - position.x, p2.y - position.y); } else { CNLog("error"); } } else { CNLog("error"); } } else if (strcasecmp(task, "play") == 0 || strcasecmp(task, "playMovie") == 0) { CCString * pFilename = (CCString *)pDict->objectForKey("File"); const char * filename = pFilename ? pFilename->getCString() : ""; CNLog("playing video: %s", filename); SFVideo_playMovie(filename); } else if (strcasecmp(task, "stop") == 0 || strcasecmp(task, "stopMovie") == 0) { CNLog("stop video"); SFVideo_stopMovie(); } return true; }