void TetrisGameLayer::startGame(){ G_current_HandleType = new LongBlock_Type(); G_current_HandleType->init(); CCSize size = CCDirector::sharedDirector()->getWinSize(); //控制按钮// CCMenuItemImage * left = CCMenuItemImage::create("left.png", "left.png"); left->setTarget(this, menu_selector(TetrisGameLayer::leftButtonPressed)); left->setScale(0.5); CCMenuItemImage * right = CCMenuItemImage::create("right.png", "right.png"); right->setTarget(this, menu_selector(TetrisGameLayer::rightButtonPressed)); left->setAnchorPoint(ccp(0, 0)); right->setAnchorPoint(ccp(0, 0)); right->setScale(0.5); right->setPosition(ccp(size.width/2+size.width/4, 0)); CCMenuItemImage * down = CCMenuItemImage::create("down.png", "down.png"); down->setTarget(this, menu_selector(TetrisGameLayer::downButtonPressed)); down->setAnchorPoint(ccp(0,0)); down->setScale(0.5); down->setPosition(ccp(size.width/2 -100,0)); down->setOpacity(0.7*255); CCMenu * menu = CCMenu::create(left,down,right, NULL); menu->setAnchorPoint(ccp(0, 0)); menu->setPosition(ccp(0, 0)); this->addChild(menu); }
void ScoreAPIScene::buildScene() { // Call super build scene. BaseScene::buildScene(); BaseScene::addTipBoard("Do you know that store user score on Facebook? Compare friends score and build a leaderboard in just 1 function call"); CCSpriteBatchNode* batchNode = CCSpriteBatchNode::create(PNG_FILE(kRESOURCE_SCORE)); this->addChild(batchNode); CCSpriteFrameCache::sharedSpriteFrameCache()->addSpriteFramesWithFile(PLIST_FILE(kRESOURCE_SCORE)); buildHeader(-1, "Score APIs", "Generate interesting stories by updating scores"); CCMenuItemImage* menuItem = NULL; menuItem = this->buildAndPlaceTile("btn_reset_score_nrl", "btn_reset_score_prd", 1, 0); menuItem->setTarget(this, menu_selector(ScoreAPIScene::resetUserScore)); menuItem = this->buildAndPlaceTile("btn_submit_score_nrl", "btn_submit_score_prd", 1, 1); menuItem->setTarget(this, menu_selector(ScoreAPIScene::submitUserScore)); //menuItem = this->buildAndPlaceTile("btn_reset_tournament_nrl", "btn_reset_tournament_prd", 1, 1); //menuItem->setTarget(this, menu_selector(ScoreAPIScene::resetTournamentScore)); menuItem = this->buildAndPlaceTile("btn_achievement_nrl", "btn_achievement_prd", 0, 2); menuItem->setTarget(this, menu_selector(ScoreAPIScene::publishAnAchievement)); }
void FeedAPIScene::buildScene() { // Call super build scene. BaseScene::buildScene(); BaseScene::addTipBoard("Do you know that can actually publish on user wall without notifying him? Just try not so often to avoid getting your app blocked by user."); CCSpriteBatchNode* batchNode = CCSpriteBatchNode::create(PNG_FILE(kRESOURCE_FEED_API)); this->addChild(batchNode); CCSpriteFrameCache::sharedSpriteFrameCache()->addSpriteFramesWithFile(PLIST_FILE(kRESOURCE_FEED_API)); buildHeader(-1, "Feed APIs", "Fetch the details of user from Facebook"); CCMenuItemImage* menuItem = NULL; menuItem = this->buildAndPlaceTile("btn_post_message_nrl", "btn_post_message_prd", 0, 0); menuItem->setTarget(this, menu_selector(FeedAPIScene::postMessageOnUserWall)); menuItem = this->buildAndPlaceTile("btn_auto_post_message_nrl", "btn_auto_post_message_prd", 1, 1); menuItem->setTarget(this, menu_selector(FeedAPIScene::autoPostMessageOnUserWall)); menuItem = this->buildAndPlaceTile("btn_post_photo_nrl", "btn_post_photo_prd", 0, 2); menuItem->setTarget(this, menu_selector(FeedAPIScene::postPhotoInUserAlbum)); }
//------------------------------------------------------------------------- // 其他逻辑初始化 void CShopTestScene::onLoadScene() { setAutoRemoveUnusedTexture( true ); // 根窗口,用来挂载显示物件 { m_pRootWindow = FKCW_UIWidget_WidgetWindow::create(); m_pRootWindow->setMultiTouchEnabled(true); this->addChild(m_pRootWindow); } // 返回按钮 { CCMenu *pMenu = CCMenu::create(); pMenu->setPosition(CCPointZero); addChild(pMenu); CCMenuItemImage* pBtn = CCMenuItemImage::create(); CCSpriteFrame* pFrame = CCSpriteFrameCache::sharedSpriteFrameCache()->spriteFrameByName("back_button_normal_e.png"); pBtn->setNormalSpriteFrame(pFrame); pFrame = CCSpriteFrameCache::sharedSpriteFrameCache()->spriteFrameByName("back_button_touch_e.png"); pBtn->setSelectedSpriteFrame(pFrame); pBtn->setTarget(this, menu_selector(CShopTestScene::onClick)); pBtn->setPosition(SCREEN_CENTER_POS + ccp(0,400)); pMenu->addChild(pBtn); } }
void LayerLogin::receivePersonalData(){ Message* revMsg1 = (Message *)CData::getCData()->m_dictionary->objectForKey(103); CData::getCData()->m_dictionary->removeObjectForKey(103); if(revMsg1){ this->unschedule(schedule_selector(LayerLogin::receivePersonalData)); // editBoxUsername->removeFromParent(); // editBoxPassword->removeFromParent(); denglu1=revMsg1->data; CData::getCData()->setSendVal(denglu1); printf("------%s\n",denglu1); pSpriteDialogLogin->removeFromParent(); load->removeFromParent(); // CCSprite *pSpriteselector = CCSprite::createWithSpriteFrameName("button_bg.png");// CCSprite::create("button_bg.png"); // CCMenuItemSprite *pMenuItemSelector = CCMenuItemSprite::create(pSpriteselector, pSpriteselector, this,SEL_MenuHandler(&LayerLogin::menuItemCallbackStart)); // pMenuItemSelector->setPosition(0, 130); // CCMenuItemImage *pMenuItemStart = CCMenuItemImage::create("start_up.png", "start_down.png", this,SEL_MenuHandler(&LayerLogin::menuItemCallbackStart)); CCMenuItemImage *pMenuItemStart = CCMenuItemImage::create(); pMenuItemStart->setNormalSpriteFrame(CCSpriteFrameCache::sharedSpriteFrameCache()->spriteFrameByName("login_start_1.png")); pMenuItemStart->setSelectedSpriteFrame(CCSpriteFrameCache::sharedSpriteFrameCache()->spriteFrameByName("login_start_2.png")); pMenuItemStart->setTarget(this, SEL_MenuHandler(&LayerLogin::menuItemCallbackStart)); CCMenu *pMenu = CCMenu::create(pMenuItemStart,NULL); this->addChild(pMenu,2); CCSize winSize = CCDirector::sharedDirector()->getWinSize(); pMenu->setPosition(winSize.width/2, 180); } }
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 GamePan::showHideConfirmPad(bool isShow) { CCLayerColor* pBaseNode = dynamic_cast<CCLayerColor*>(m_pCcbNode->getChildByTag(kTagGamePanConfirmPad)); pBaseNode->setVisible(isShow); CCLabelTTF* pText = dynamic_cast<CCLabelTTF*>(pBaseNode->getChildByTag(1)); pText->setVisible(!_isPlayer); CCMenu* pMenu = dynamic_cast<CCMenu*>(pBaseNode->getChildByTag(0)); pMenu->setVisible(isShow && _isPlayer); pMenu->setTouchPriority(-1000); if(pMenu) { CCMenuItemImage* btn = dynamic_cast<CCMenuItemImage*>(pMenu->getChildByTag(kTagGamePanConfirmPadOkBtn)); btn->setTarget(this,menu_selector(GamePan::ConfirmBtnCallback)); btn = dynamic_cast<CCMenuItemImage*>(pMenu->getChildByTag(kTagGamePanConfirmPadCancelBtn)); btn->setTarget(this,menu_selector(GamePan::ConfirmBtnCallback)); } }
void GameLayer::createPauseLayer() { Context *context = Context::sharedContext(); CCSize s = CCDirector::sharedDirector()->getWinSize(); /* 半透明层 */ CCLayerColor* pauseLayer = CCLayerColor::create(); pauseLayer->setContentSize(CCSizeMake(s.width, s.height)); pauseLayer->setColor(ccc3(0, 0, 0)); pauseLayer->setOpacity(150); CCMenu *menu = CCMenu::create(); //回到游戏 CCMenuItemImage *resumebg = CCMenuItemImage::create(("btn_big.png"), ("btn_big.png")); resumebg->setTarget(this, menu_selector(GameLayer::onResumeItem)); CCMenuItemFont *resumetxt = CCMenuItemFont::create(LOCAL_RESOURCES->valueByKey("i18n_resume")->getCString()); resumebg->setAnchorPoint(ccp(0.5, 0.5)); resumebg->setPosition(ccpp(0, 0)); resumetxt->setPosition( ccp(resumebg->getContentSize().width / 2, resumebg->getContentSize().height / 2)); resumetxt->setAnchorPoint(ccp(0.5, 0.5)); resumetxt->setColor(context->getFontColor()); resumebg->addChild(resumetxt); menu->addChild(resumebg); //回到菜单 CCMenuItemImage *backbg = CCMenuItemImage::create(("btn_big.png"), ("btn_big.png")); backbg->setTarget(this, menu_selector(GameLayer::onBackItem)); CCMenuItemFont *backtxt = CCMenuItemFont::create(LOCAL_RESOURCES->valueByKey("i18n_back")->getCString()); backbg->setAnchorPoint(ccp(0.5, 0.5)); backbg->setPosition(ccpp(0, -0.12)); backtxt->setPosition( ccp(backbg->getContentSize().width / 2, backbg->getContentSize().height / 2)); backtxt->setAnchorPoint(ccp(0.5, 0.5)); backtxt->setColor(context->getFontColor()); backbg->addChild(backtxt); menu->addChild(backbg); pauseLayer->addChild(menu); CCDirector::sharedDirector()->getRunningScene()->addChild(pauseLayer, 0, TAG_LAYER_PAUSE); }
void StartLayer::addMenu() { CCMenuItemImage *singleItem = CCMenuItemImage::create("btn_start_single_1-hd.png", "btn_start_single_2-hd.png"); singleItem->setTarget(this, menu_selector(StartLayer::clickSingleMenu)); singleItem->setPosition(-210,-122); CCMenuItemImage *mutipleItem = CCMenuItemImage::create("btn_start_multi_1-hd.png", "btn_start_multi_2-hd.png"); mutipleItem->setTarget(this, menu_selector(StartLayer::clickMultipleMenu)); mutipleItem->setPosition(ccp(223, -120)); CCMenuItemImage *otherItm = CCMenuItemImage::create("btn_start_updatead_1-hd.png","btn_start_updatead_2-hd.png", this, menu_selector(StartLayer::clickOtherMenu)); otherItm->setPosition(80, -228); CCMenu *menu = CCMenu::create(singleItem,mutipleItem,otherItm,NULL); this->addChild(menu); }
void HelloWorld::addBackButton(CCScene *s){ // CCScene *currentScene = CCDirector::sharedDirector()->getRunningScene(); CCSize size = CCDirector::sharedDirector()->getWinSize(); //布置菜单的layer CCMenu *menu = CCMenu::create(); menu->setPosition(CCPointZero);//菜单锚点被设为0.5 0.5了,改回来 s->addChild(menu); CCMenuItemImage *item = CCMenuItemImage::create("home.png", "home.png"); item->setPosition(ccp(size.width-50, size.height-50)); menu->addChild(item); item->setTarget(this, menu_selector(HelloWorld::returnCallback)); }
bool StartScene::init() { if (!CCLayer::init()) { return false; } CCSize winsize = CCDirector::sharedDirector()->getWinSize(); CCSprite* bgsprite = CCSprite::create("bg54.jpg"); bgsprite->setScale(0.6); bgsprite->setPosition(ccp(winsize.width/2, winsize.height/2)); this->addChild(bgsprite); CCSprite* bgtitle = CCSprite::create("bgtitle.png"); bgtitle->setScale(0.35); bgtitle->setPosition(ccp(winsize.width/2, winsize.height/2+100)); this->addChild(bgtitle); CCSprite* bg = CCSprite::create("gamebg.png"); bg->setScale(0.6); bg->setPosition(ccp(winsize.width/2, winsize.height/2-25)); this->addChild(bg); //选择按钮 CCMenuItemImage* startItem = CCMenuItemImage::create("start.png", "start.png",this,menu_selector(StartScene::startBtn)); startItem->setScale(0.6); startItem->setPosition(ccp(winsize.width/2, winsize.height/2-25)); CCMenuItemImage* helpItem = CCMenuItemImage::create("help.png", "help.png"); helpItem->setTarget(this, menu_selector(StartScene::helpBtn)); helpItem->setScale(0.6); helpItem->setPosition(ccp(winsize.width/2, winsize.height/2-75)); //音效按钮 CCMenuItemImage* start = CCMenuItemImage::create("music2.png", "music2.png"); CCMenuItemImage* start1 = CCMenuItemImage::create("music1.png", "music1.png"); CCMenuItemToggle* tog1 = CCMenuItemToggle::createWithTarget(this, menu_selector(StartScene::musicBtn),start,start1,NULL); tog1->setPosition(ccp(winsize.width/2+100, winsize.height/2-25)); CCMenuItemImage* yinxiao = CCMenuItemImage::create("music3.png", "music3.png"); CCMenuItemImage* yinxiao1 = CCMenuItemImage::create("music4.png", "music4.png"); CCMenuItemToggle* tog2 = CCMenuItemToggle::createWithTarget(this, menu_selector(StartScene::yinxiaoBtn),yinxiao,yinxiao1,NULL); tog2->setPosition(ccp(winsize.width/2+100, winsize.height/2-55)); CCMenu* menu = CCMenu::create(startItem,helpItem,tog1,tog2, NULL); menu->setPosition(CCPointZero); this->addChild(menu,1); return true; }
void GamePan::showResult() { CCNode* pBaseNode = m_pCcbNode->getChildByTag(kTagGamePanResultPad); pBaseNode->setVisible(true); CCLabelTTF* title = dynamic_cast<CCLabelTTF*>(pBaseNode->getChildByTag(kTagGamePanResultPadText)); if(_isPlayer) title->setString("PLAYER WIN"); else title->setString("NPC WIN"); CCNode* pMenu = pBaseNode->getChildByTag(kTagGamePanResultPadMenu); if(pMenu) { CCMenuItemImage* btn = dynamic_cast<CCMenuItemImage*>(pMenu->getChildByTag(0)); btn->setTarget(this,menu_selector(GamePan::ResultBtnCallBack)); } }
CCLayer * GameLayer::createPauseButtonLayer() { CCMenu *layer = CCMenu::create(); //暂停 CCMenuItemImage *pausebg = CCMenuItemImage::create(("btn_small.png"), ("btn_small.png")); CCSprite *pausetxt = CCSprite::create("btn_pause.png"); pausebg->setTarget(this, menu_selector(GameLayer::onPauseItem)); pausebg->setAnchorPoint(ccp(0, 0.5)); pausebg->setPosition(ccpp(-0.49, 0.42)); pausetxt->setPosition( ccp(pausebg->getContentSize().width / 2, pausebg->getContentSize().height / 2)); pausetxt->setAnchorPoint(ccp(0.5, 0.5)); pausebg->addChild(pausetxt); layer->addChild(pausebg); return layer; }
void GUIBase::onEnter() { CCLayer::onEnter(); setTouchPriority(kGUIBasePriority); setTouchMode(kCCTouchesOneByOne); // 设置close回调 if (m_pCcbNode) { CCNode* pNode = m_pCcbNode->getChildByTag(TAG_CLOSE); if (pNode) { CCNode* pTemp = pNode->getChildByTag(TAG_CLOSE); if (pTemp) { CCMenuItemImage *pItem = (CCMenuItemImage *)pTemp; pItem->setTarget(this, menu_selector(GUIBase::closeButtonCallback)); } } } }
bool ActionSequence::init() { if(CCLayer::init()) { CCSprite *bg = CCSprite::create("bg.png"); bg->setPosition(ccp(240, 160)); this->addChild(bg); CCMenuItemImage *itemImage = CCMenuItemImage::create("b1.png", "b2.png"); itemImage->setTarget(this, menu_selector(ActionSequence::back)); CCMenu *backMenu = CCMenu::create(itemImage,NULL); backMenu->setPosition(ccp(50,280)); this->addChild(backMenu); CCMenuItemFont *item1 = CCMenuItemFont::create("CCSequence"); CCMenuItemFont *item2 = CCMenuItemFont::create("CCSpawn"); item1->setTarget(this, menu_selector(ActionSequence::showSequence)); item2->setTarget(this, menu_selector(ActionSequence::showSpawn)); CCMenu *menu = CCMenu::create(item1,item2,NULL); menu->setColor(ccc3(0, 255, 0)); menu->alignItemsInColumns(1,1); menu->setPosition(ccp(240,80)); this->addChild(menu); mySprite = CCSprite::create("bird.png"); mySprite->setPosition(ccp(60, 180)); this->addChild(mySprite); return true; } return false; }
void GameOver::onEnter() { #if(CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID) const char* FILE_NAME = "/mnt/sdcard/ninjadash/ninjadata"; #elif(CC_TARGET_PLATFORM == CC_PLATFORM_WIN32) const char* FILE_NAME = "../assets/data"; #endif FILE* p = fopen(FILE_NAME,"r"); if(!p) { FILE* w = fopen(FILE_NAME,"w"); fwrite("0",1,1,w); fclose(w); } p = fopen(FILE_NAME,"r+"); char data[8] = {0}; fread(data,1,8,p); CCString* sMax = CCString::create(data); int nMax = sMax->intValue(); if(m_nThisScore > nMax) { CCString* sWrite = CCString::createWithFormat("%d",m_nThisScore); fseek(p,0,SEEK_SET); int l = sWrite->length(); fwrite(sWrite->getCString(),l,1,p); } fclose(p); // End Haha const float fontSize = 40.0f; CCSize visibleSize = CCDirector::sharedDirector()->getVisibleSize(); CCPoint origin = CCDirector::sharedDirector()->getVisibleOrigin(); if( !m_bFromMenu ) { CCSprite* background = CCSprite::create( "bg_gameover.png" ); background->setScaleX(CCEGLView::sharedOpenGLView()->getFrameSize().width / background->getContentSize().width); background->setScaleY(CCEGLView::sharedOpenGLView()->getFrameSize().height / background->getContentSize().height); background->setPosition( ccp( CCEGLView::sharedOpenGLView()->getFrameSize().width / 2, CCEGLView::sharedOpenGLView()->getFrameSize().height / 2 ) ); this->addChild( background, -1 ); // Create 2 Menu Items CCMenuItemImage* quitItem = CCMenuItemImage::create( "quit_up.png", "quit_down.png" ); quitItem->setTag( MT_Menu ); quitItem->setTarget( this, menu_selector( GameOver::menuCallback ) ); quitItem->setPosition( ccp( visibleSize.width * (1.0 - 0.3) / 2, CCEGLView::sharedOpenGLView()->getFrameSize().height * 0.375 ) ); quitItem->setScale( 1.5f ); CCMenuItemImage* retryItem = CCMenuItemImage::create( "tryagain_up.png", "tryagain_down.png" ); retryItem->setTag( MT_Retry ); retryItem->setTarget( this, menu_selector( GameOver::menuCallback ) ); retryItem->setPosition( ccp( visibleSize.width * (1.0 + 0.3) / 2, CCEGLView::sharedOpenGLView()->getFrameSize().height * 0.375 ) ); retryItem->setScale( 1.5f ); // Add to Menu CCMenu* pMenu = CCMenu::create( quitItem, retryItem, NULL ); pMenu->setPosition( CCPointZero ); this->addChild( pMenu ); // Font CCString* s1 = CCString::createWithFormat("%d",m_nThisScore); CCLabelTTF* info1 = CCLabelTTF::create(s1->getCString(),"Stencil Std",fontSize); info1->setPosition(CCPoint(CCEGLView::sharedOpenGLView()->getFrameSize().width / 2,CCEGLView::sharedOpenGLView()->getFrameSize().height * 1.35 / 2 )); addChild(info1); CCLabelTTF* info2 = CCLabelTTF::create(sMax->getCString(),"Stencil Std",fontSize); info2->setPosition(CCPoint(CCEGLView::sharedOpenGLView()->getFrameSize().width / 2,CCEGLView::sharedOpenGLView()->getFrameSize().height * 1.1 / 2 )); addChild(info2); } else { CCSprite* background = CCSprite::create( "bg_setting.png" ); background->setScaleX(CCEGLView::sharedOpenGLView()->getFrameSize().width / background->getContentSize().width); background->setScaleY(CCEGLView::sharedOpenGLView()->getFrameSize().height / background->getContentSize().height); background->setPosition( ccp( CCEGLView::sharedOpenGLView()->getFrameSize().width / 2, CCEGLView::sharedOpenGLView()->getFrameSize().height / 2 ) ); this->addChild( background, -1 ); CCSprite* bscore = CCSprite::create( "bestscore.png" ); bscore->setScale(1.5); bscore->setPosition( ccp( CCEGLView::sharedOpenGLView()->getFrameSize().width / 2, CCEGLView::sharedOpenGLView()->getFrameSize().height * 0.8 ) ); this->addChild( bscore, -1 ); // Create 2 Menu Items CCMenuItemImage* backItem = CCMenuItemImage::create( "back_up.png", "back_down.png" ); backItem->setTag( MT_Back ); backItem->setTarget( this, menu_selector( GameOver::menuCallback ) ); backItem->setPosition( ccp( visibleSize.width / 2, CCEGLView::sharedOpenGLView()->getFrameSize().height * 0.375 ) ); backItem->setScale( 1.5f ); // Add to Menu CCMenu* pMenu = CCMenu::create( backItem, NULL ); pMenu->setPosition( CCPointZero ); this->addChild( pMenu ); CCLabelTTF* info2 = CCLabelTTF::create(sMax->getCString(),"Stencil Std",fontSize); info2->setPosition(CCPoint(CCEGLView::sharedOpenGLView()->getFrameSize().width / 2,CCEGLView::sharedOpenGLView()->getFrameSize().height * 1.4 / 2 )); addChild(info2); } CCLayer::onEnter(); }
CCTableViewCell* RequestList::tableCellAtIndex(CCTableView *table, unsigned int idx) { int index = idx; EziFBIncomingRequest* fbRequest = (EziFBIncomingRequest*)_fbIncomingRequestList->objectAtIndex(index); EziFacebookFriend* sender = fbRequest->getSender(); const char* senderName = sender->getName(); // Create the fancy test. EziSocialWrapperNS::FB_REQUEST::TYPE requestType = fbRequest->getRequestType(); std::string messageToDisplay = ""; switch (requestType) { case EziSocialWrapperNS::FB_REQUEST::REQUEST_INVITE: messageToDisplay.append(senderName).append(" has sent invitation to you."); break; case EziSocialWrapperNS::FB_REQUEST::REQUEST_GIFT: messageToDisplay.append(senderName).append(" has sent gift to you."); break; case EziSocialWrapperNS::FB_REQUEST::REQUEST_CHALLENGE: messageToDisplay.append(senderName).append(" has challenged to you."); break; default: messageToDisplay.append("Unknown message"); break; } // Means users have already used this request. bool requestConsumed = fbRequest->isConsumed(); CCSprite* profilePic = NULL; ccColor4B bgColor = ccc4(20, 0, 40, 255); if (requestConsumed == false) { bgColor = ccc4(50, 50, 20, 255); } // Build the table cell. CCTableViewCell *cell = table->dequeueCell(); if (cell == NULL) { cell = new CCTableViewCell(); cell->autorelease(); // Create the back layer of the cell. CCLayerColor* colorLayer = CCLayerColor::create(bgColor, SCREEN_WIDTH, CELL_HEIGHT); colorLayer->setTag(BACKGROUND_TAG); cell->addChild(colorLayer); // Get the sender profile picture path. Create it if path is available. if (sender != NULL && strcmp(sender->getPhotoPath(), "") != 0) { const char* picPath = sender->getPhotoPath(); profilePic = CCSprite::create(picPath); } else { profilePic = CCSprite::create(FB_DEFAULT_PHOTO); } // Add the profile pic to the cell row. profilePic->setAnchorPoint(ccp(0, 0.5)); profilePic->setPosition(ccp(20, CELL_HEIGHT/2)); cell->addChild(profilePic); profilePic->setTag(FRIEND_PHOTO_TAG); // Set the message. CCLabelTTF *messageLabel = CCLabelTTF::create(messageToDisplay.c_str(), "Helvetica", 20.0 * MENU_FONT_SCALE); messageLabel->setAnchorPoint(ccp(0, 0.5)); messageLabel->setPosition(ccp(20 + 20 + profilePic->getContentSize().width, CELL_HEIGHT/2)); messageLabel->setTag(REQUEST_MESSAGE_LABEL_TAG); messageLabel->setDimensions(CCSizeMake(SCREEN_WIDTH - (profilePic->getContentSize().width * 2) - 60, CELL_HEIGHT-5)); messageLabel->setHorizontalAlignment(kCCTextAlignmentLeft); cell->addChild(messageLabel); CCMenuItemImage* constumeItemButton = NULL; constumeItemButton = CCMenuItemImage::create("use.png", "use_pressed.png"); constumeItemButton->setTag(idx); constumeItemButton->setTarget(this, menu_selector(RequestList::useItem)); constumeItemButton->setScale(SCALE_FACTOR * 0.8); constumeItemButton->setTag(FRIEND_CONSUME_BUTTON_TAG); CCMenu* consumeMenu = CCMenu::create(constumeItemButton, NULL); consumeMenu->setTag(FRIEND_CONSUME_MENU_TAG); consumeMenu->setPosition(ccp(SCREEN_WIDTH - (constumeItemButton->getContentSize().width*SCALE_FACTOR*0.4), (CELL_HEIGHT - (constumeItemButton->getContentSize().height)*SCALE_FACTOR*0.4))); cell->addChild(consumeMenu); } else { // Refresh the cell data based upon idx. // 1. Refresh the profile picture. CCSprite* cellProfilePic = (CCSprite*)cell->getChildByTag(FRIEND_PHOTO_TAG); if (strcmp("", sender->getPhotoPath()) != 0 ) { const char* picPath = sender->getPhotoPath(); profilePic = CCSprite::create(picPath); } else { profilePic = CCSprite::create(FB_DEFAULT_PHOTO); } cellProfilePic->setTexture(profilePic->getTexture()); // Update the message Label. CCLabelTTF *messageLabel = (CCLabelTTF*)cell->getChildByTag(REQUEST_MESSAGE_LABEL_TAG); messageLabel->setString(messageToDisplay.c_str()); CCMenu* consumeMenu = (CCMenu*)cell->getChildByTag(FRIEND_CONSUME_MENU_TAG); CCArray* children = consumeMenu->getChildren(); if (children) { CCMenuItemImage* consumenButton = (CCMenuItemImage*)children->objectAtIndex(0); if (consumenButton) { consumenButton->setTag(index); } else { CCLOG("No Consume Button"); } } CCLayerColor* bgLayer = (CCLayerColor*)cell->getChildByTag(BACKGROUND_TAG); bgLayer->setColor(ccc3(bgColor.r, bgColor.g, bgColor.b)); } return cell; }
void BaseScene::buildHeader(int highlightIndex, const char* title, const char* description) { _currentMenuIndex = highlightIndex; CCMenuItemImage* homeButton = CCMenuItemImage::create(); homeButton->setNormalSpriteFrame(CCSpriteFrameCache::sharedSpriteFrameCache()->spriteFrameByName("btn_home_nrl")); homeButton->setSelectedSpriteFrame(CCSpriteFrameCache::sharedSpriteFrameCache()->spriteFrameByName("btn_home_prd")); homeButton->setDisabledSpriteFrame(CCSpriteFrameCache::sharedSpriteFrameCache()->spriteFrameByName("btn_home_prd")); homeButton->setTarget(this, menu_selector(BaseScene::loadHomeScene)); homeButton->setAnchorPoint(ccp(1.0f, 1.0f)); CCMenuItemImage* fbActionButton = CCMenuItemImage::create(); fbActionButton->setNormalSpriteFrame(CCSpriteFrameCache::sharedSpriteFrameCache()->spriteFrameByName("btn_fb_action_nrl")); fbActionButton->setSelectedSpriteFrame(CCSpriteFrameCache::sharedSpriteFrameCache()->spriteFrameByName("btn_fb_action_prd")); fbActionButton->setDisabledSpriteFrame(CCSpriteFrameCache::sharedSpriteFrameCache()->spriteFrameByName("btn_fb_action_dis")); fbActionButton->setTarget(this, menu_selector(BaseScene::loadFBActionScene)); fbActionButton->setAnchorPoint(ccp(1.0f, 1.0f)); if (EziSocialObject::sharedObject()->isFacebookSessionActive() == false) { fbActionButton->setEnabled(false); } CCMenuItemImage* helpButton = CCMenuItemImage::create(); helpButton->setNormalSpriteFrame(CCSpriteFrameCache::sharedSpriteFrameCache()->spriteFrameByName("btn_help_nrl")); helpButton->setSelectedSpriteFrame(CCSpriteFrameCache::sharedSpriteFrameCache()->spriteFrameByName("btn_help_prd")); helpButton->setDisabledSpriteFrame(CCSpriteFrameCache::sharedSpriteFrameCache()->spriteFrameByName("btn_help_prd")); helpButton->setTarget(this, menu_selector(BaseScene::loadHelpScene)); helpButton->setAnchorPoint(ccp(1.0f, 1.0f)); switch (highlightIndex) { case 0: homeButton->setEnabled(false); break; case 1: fbActionButton->setEnabled(false); break; case 2: helpButton->setEnabled(false); break; default: break; } CCMenu* homeMenu = CCMenu::create(homeButton, fbActionButton, helpButton, NULL); homeMenu->alignItemsHorizontally(); this->addChild(homeMenu); PlaceNode(homeMenu, 0.88, 0.98); // Add a line. CCLayerColor* lineLayer = CCLayerColor::create(ccc4(204, 204, 204, 204), CCDirector::sharedDirector()->getVisibleSize().width, 1.0 * AppDelegate::SCREEN_SCALE_FACTOR); this->addChild(lineLayer); PlaceNode(lineLayer, 0.0, 0.8); lineLayer->setPositionY(homeMenu->getPositionY() - homeButton->getContentSize().height - (7 * AppDelegate::SCREEN_SCALE_FACTOR)); // Add Title CCLabelTTF* titleLabel = CCLabelTTF::create(title, "Arial", 50.0 * AppDelegate::SCREEN_SCALE_FACTOR); this->addChild(titleLabel); titleLabel->setAnchorPoint(ccp(0.0f, 0.0f)); //PlaceNode(titleLabel, 0.02, 0.98); CCLabelTTF* descriptionLabel = CCLabelTTF::create(description, "Arial", SCALED_VALUE(22.0f)); this->addChild(descriptionLabel); descriptionLabel->setAnchorPoint(ccp(0.0f, 0.0f)); PlaceNode(descriptionLabel, 0.02, 0.98); descriptionLabel->setPositionY(homeMenu->getPositionY() - homeButton->getContentSize().height); descriptionLabel->setColor(ccc3(204, 204, 204)); titleLabel->cocos2d::CCNode::setPosition(descriptionLabel->getPositionX(), descriptionLabel->getPositionY() + descriptionLabel->getContentSize().height - 2.0f); }
GameScene::GameScene() { this->setTouchEnabled( true ); CCSize winSize = CCDirector::sharedDirector()->getWinSize(); this->InitPhysical(); CCSprite * pBg = CCSprite::create("bg.png"); pBg->setAnchorPoint(CCPointZero); pBg->setPosition(CCPointMake(0.0, 0.0)); this->addChild(pBg,-1); CCSprite * pBase2 = CCSprite::create("catapult_base_2.png"); pBase2->setAnchorPoint(CCPointZero); pBase2->setPosition(ccp(2*181.0f,FLOOR_HEIGHT)); this->addChild(pBase2,0); CCSprite * pSquirrelLeft = CCSprite::create("squirrel_1.png"); pSquirrelLeft->setAnchorPoint(CCPointZero); pSquirrelLeft->setPosition(ccp(2*11.0f,FLOOR_HEIGHT)); this->addChild(pSquirrelLeft,0); CCSprite * pBase1 = CCSprite::create("catapult_base_1.png"); pBase1->setAnchorPoint(CCPointZero); pBase1->setPosition(ccp(2*181.0f,FLOOR_HEIGHT)); this->addChild(pBase1,9); CCSprite * pSquirrelRight = CCSprite::create("squirrel_2.png"); pSquirrelRight->setAnchorPoint(CCPointZero); pSquirrelRight->setPosition(ccp(2*240.0f,FLOOR_HEIGHT)); this->addChild(pSquirrelRight,9); //地面 CCSprite * pIceGround = CCSprite::create("fg.png"); pIceGround->setAnchorPoint(CCPointZero); this->addChild(pIceGround,10); // b2BodyDef bodyDef; // bodyDef.type = b2_staticBody; // // //以精灵中心为位置 // bodyDef.position.Set((pIceGround->getPositionX() + pIceGround->getContentSize().width/2.0)/PTM_RATIO, (pIceGround->getPositionY() + pIceGround->getContentSize(). // height/2.0)/PTM_RATIO); // bodyDef.userData = pIceGround; // // b2Body * body = m_pWorld->CreateBody(&bodyDef); // // CCLog("%f,%f",body->GetPosition().x*PTM_RATIO,body->GetPosition().y*PTM_RATIO); // b2FixtureDef fixtureDef; // // b2PolygonShape box; // fixtureDef.shape = &box; // fixtureDef.density = 1.0f;//密度 // fixtureDef.friction = 0.2f;//摩擦力 // box.SetAsBox(pIceGround->getContentSize().width/2.0/PTM_RATIO, pIceGround->getContentSize().height/2.0/PTM_RATIO); // body->CreateFixture(&box,0.5f); CCSprite * pArm = CCSprite::create("catapult_arm.png"); this->addChild(pArm,1); pArm->setTag(ARM_TAG); CCMenuItemImage * backItem = CCMenuItemImage::create("back.png", "back.png"); backItem->setTarget(this, menu_selector(GameScene::backToMainMenu)); CCMenu * pMenu = CCMenu::create(backItem,NULL); pMenu->setPosition(ccp(2*40,2*300)); this->addChild(pMenu,111); b2BodyDef armBodyDef; armBodyDef.type = b2_dynamicBody; armBodyDef.linearDamping = 1;//线性阻尼 armBodyDef.angularDamping = 1;//角阻抗 armBodyDef.position.Set(2*230.0/PTM_RATIO, (FLOOR_HEIGHT + 2*91.0f)/PTM_RATIO); armBodyDef.userData = pArm; m_pArmBody = m_pWorld->CreateBody(&armBodyDef); b2PolygonShape armBox; b2FixtureDef armBoxDef; armBoxDef.shape = &armBox; armBoxDef.density = 0.3f; armBox.SetAsBox(2*11.0f/PTM_RATIO, 2*91.0f/PTM_RATIO); m_pArmFixture = m_pArmBody->CreateFixture(&armBoxDef); //旋转关节 b2RevoluteJointDef armJoinDef; armJoinDef.Initialize(m_pGroundBody, m_pArmBody, b2Vec2(2*233.0f/PTM_RATIO, FLOOR_HEIGHT/PTM_RATIO)); armJoinDef.enableMotor = true; armJoinDef.enableLimit = true; armJoinDef.motorSpeed = -10*2; armJoinDef.lowerAngle = CC_DEGREES_TO_RADIANS(9); armJoinDef.upperAngle = CC_DEGREES_TO_RADIANS(75); armJoinDef.maxMotorTorque = 2*900;//就是当关节被旋转后,使关节恢复的力,类似弹力。这个力越小,越容易旋转,恢复力也就越小。 m_pArmJoin = (b2RevoluteJoint*)m_pWorld->CreateJoint(&armJoinDef); m_pMouseJoin = NULL; m_bReleaseArm = false; CCDelayTime * delayTime = CCDelayTime::create(0.2f); CCCallFunc * callFunc = CCCallFunc::create(this, callfunc_selector(GameScene::resetGame)); this->runAction(CCSequence::create(delayTime,callFunc,NULL)); getEnemyInfo(); createTargets(global::getGameLevel()); m_pListener = new MyContactListener(); m_pWorld->SetContactListener(m_pListener); m_pBulletBody = NULL; schedule( schedule_selector(GameScene::tick) ); }
HelloWorld::HelloWorld() { this->setIsTouchEnabled( true ); CCSize winSize = CCDirector::sharedDirector()->getWinSize(); this->InitPhysical(); CCSprite * pBg = CCSprite::spriteWithFile("bg.png"); pBg->setAnchorPoint(CCPointZero); pBg->setPosition(CCPointMake(0.0, 0.0)); this->addChild(pBg,-1); CCSprite * pBase2 = CCSprite::spriteWithFile("catapult_base_2.png"); pBase2->setAnchorPoint(CCPointZero); pBase2->setPosition(ccp(181.0f,FLOOR_HEIGHT)); this->addChild(pBase2,0); CCSprite * pSquirrelLeft = CCSprite::spriteWithFile("squirrel_1.png"); pSquirrelLeft->setAnchorPoint(CCPointZero); pSquirrelLeft->setPosition(ccp(11.0f,FLOOR_HEIGHT)); this->addChild(pSquirrelLeft,0); CCSprite * pBase1 = CCSprite::spriteWithFile("catapult_base_1.png"); pBase1->setAnchorPoint(CCPointZero); pBase1->setPosition(ccp(181.0f,FLOOR_HEIGHT)); this->addChild(pBase1,9); CCSprite * pSquirrelRight = CCSprite::spriteWithFile("squirrel_2.png"); pSquirrelRight->setAnchorPoint(CCPointZero); pSquirrelRight->setPosition(ccp(240.0f,FLOOR_HEIGHT)); this->addChild(pSquirrelRight,9); //发射臂 CCSprite * pIceGround = CCSprite::spriteWithFile("fg.png"); pIceGround->setAnchorPoint(CCPointZero); this->addChild(pIceGround,10); CCSprite * pArm = CCSprite::spriteWithFile("catapult_arm.png"); this->addChild(pArm,1); CCMenuItemImage * backItem = CCMenuItemImage::itemFromNormalImage("back.png", "back.png"); backItem->setTarget(this, menu_selector(HelloWorld::backToMainMenu)); CCMenu * pMenu = CCMenu::menuWithItem(backItem); pMenu->setPosition(ccp(40,300)); this->addChild(pMenu,111); b2BodyDef armBodyDef; armBodyDef.type = b2_dynamicBody; armBodyDef.linearDamping = 1;//线性阻尼 armBodyDef.angularDamping = 1;//角阻抗 armBodyDef.position.Set(230.0/PTM_RATIO, (FLOOR_HEIGHT + 91.0f)/PTM_RATIO); armBodyDef.userData = pArm; m_pArmBody = m_pWorld->CreateBody(&armBodyDef); b2PolygonShape armBox; b2FixtureDef armBoxDef; armBoxDef.shape = &armBox; armBoxDef.density = 0.3f; armBox.SetAsBox(11.0f/PTM_RATIO, 91.0f/PTM_RATIO); m_pArmFixture = m_pArmBody->CreateFixture(&armBoxDef); //旋转关节 b2RevoluteJointDef armJoinDef; armJoinDef.Initialize(m_pGroundBody, m_pArmBody, b2Vec2(233.0f/PTM_RATIO, FLOOR_HEIGHT/PTM_RATIO)); armJoinDef.enableMotor = true; armJoinDef.enableLimit = true; armJoinDef.motorSpeed = -10; armJoinDef.lowerAngle = CC_DEGREES_TO_RADIANS(9); armJoinDef.upperAngle = CC_DEGREES_TO_RADIANS(75); armJoinDef.maxMotorTorque = 700;//就是当关节被旋转后,使关节恢复的力,类似弹力。这个力越小,越容易旋转,恢复力也就越小。 m_pArmJoin = (b2RevoluteJoint*)m_pWorld->CreateJoint(&armJoinDef); m_pMouseJoin = NULL; m_bReleaseArm = false; CCDelayTime * delayTime = CCDelayTime::actionWithDuration(0.2f); CCCallFunc * callFunc = CCCallFunc::actionWithTarget(this, callfunc_selector(HelloWorld::resetGame)); this->runAction(CCSequence::actions(delayTime,callFunc,NULL)); createTargets(); m_pListener = new MyContactListener(); m_pWorld->SetContactListener(m_pListener); m_pBulletBody = NULL; schedule( schedule_selector(HelloWorld::tick) ); }