예제 #1
0
bool MultiPriceMatch::showHint(){

	bool bRet = false;
	bool allset = true;
	Vec2 vecbtn;
	
	do{
		if(_bTlEnabled == false) break;
		_bTlEnabled = false;

		AppDelegate *app = (AppDelegate*)Application::getInstance();
		//long score = app->GetUserTotalScore();
		int score = 0;

		if (_nTlimit > 0){
			if(_nTlcount > 0){
				_nTlcount--;
				//AppDelegate *app =  (AppDelegate*) Application::getInstance();
				app->setToolsNumberInfo(_nTlcount);
			}else{
				if(_lTtlScore >= 10){
					showDeductPointEffect(LINK_UI_TEXT_SCORE);
					score = 10;
					_lTtlScore = _lTtlScore - 10;
					AppDelegate *app =  (AppDelegate*) Application::getInstance();
					app->UpdateUserScore(0,10);
				}else{
					break;
				}
			}
			
			app->PlayEffect(SOUND_TOOL_CLICK);
			_nTlimit--;
			if (_nTlimit == 0){
				auto spTips = dynamic_cast<Button*>(_SORT_UINode->getChildByName(LINK_UI_BTN_TIPS));
				CC_BREAK_IF(!spTips);
				spTips->setEnabled(false);
				spTips->setColor(ccc3(84,84,84));//not disabled button, so use color instead
			}

		}else {
			break;
		}

		//if (score < 10) {
		//	MessageBox("Oops, Your score should be greater than 10 to use powerup","Spot it");
		//	break;
		//}
		//_vec_currentPos.clear();

		//for (int i = 0; i < 3; i++){
		//	_vec_currentPos.push_back(_vec_btnPrice[i]->getPosition());
		//}

		//btnClear();
		//int i,j = 0;
		//_vec_Price_index
		for (int i = 0; i < 3; i++){ 	
			for (int j = 0; j < 3; j++){
				vecbtn = _vec_btnPrice[_vec_Price_index[i]]->getPosition();//get correct button position
				if (_vec_lblPrice[i]->getName().compare(LBL_TAKEN) == 0){
					if (_vec_lblPrice[i]->getPosition() == _vec_btnPrice[j]->getPosition()){
						if (_vec_btnPrice[j]->getTitleText().compare(_product_list[i].price.c_str()) == 0){ //price is correct 
							j = 3;
							break;
						}else{//price is wrong
//							vecbtn = _vec_btnPrice[_vec_Price_index[i]]->getPosition();//get correct button position
							_vec_btnPrice[_vec_Price_index[i]]->setPosition(_vec_lblPrice[i]->getPosition()); // move correct button to the position
							_vec_btnPrice[_vec_Price_index[i]]->setBright(false);
							_vec_btnPrice[_vec_Price_index[i]]->setTouchEnabled(false);

							_vec_btnPrice[j]->setPosition(_vec_originalPos[j]); //set wrong button back to original place
							_vec_btnPrice[j]->setTouchEnabled(true);
							_vec_btnPrice[j]->setBright(true);

							_vec_lblPrice[i]->setName(LBL_TAKEN); //set new position is taken
							j = 3;
							i = 3;
							break;
						}
					}
				}else{
					_vec_btnPrice[_vec_Price_index[i]]->setPosition(_vec_lblPrice[i]->getPosition()) ;
					_vec_btnPrice[_vec_Price_index[i]]->setBright(false);
					_vec_btnPrice[_vec_Price_index[i]]->setTouchEnabled(false);
					//_vec_btnPrice[j]->setPosition(_vec_lblPrice[i]->getPosition()) ;
					_vec_lblPrice[i]->setName(LBL_TAKEN);
					j = 3;
					i = 3;
					break;
				}
			}
		}
		for (int i = 0; i < 3; i++){
			if (_vec_lblPrice[i]->getPosition() == vecbtn){
				_vec_lblPrice[i]->setName("");
			}
		}


		for(int i = 0; i < 3; i++){
			if (this->getChildByTag(SORT_UI_NODE)->getChildByTag(BTN_PRICE_1+i)->getPosition() == _vec_originalPos[i]){
				allset = false;
			}
		}

		if (allset == true){
			auto btnClr = dynamic_cast<Button*>(_SORT_UINode->getChildByName(BTN_CLEAR));
			CC_BREAK_IF(btnClr == nullptr);
			btnClr->setVisible(true);

			auto btnSub = dynamic_cast<Button*>(_SORT_UINode->getChildByName(BTN_SUBMIT));
			CC_BREAK_IF(btnSub == nullptr);
			btnSub->setVisible(true);		
		}else{
			auto btnClr = dynamic_cast<Button*>(_SORT_UINode->getChildByName(BTN_CLEAR));
			CC_BREAK_IF(btnClr == nullptr);
			btnClr->setVisible(false);

			auto btnSub = dynamic_cast<Button*>(_SORT_UINode->getChildByName(BTN_SUBMIT));
			CC_BREAK_IF(btnSub == nullptr);
			btnSub->setVisible(false);		
		}
		//i = 0;
		//for (int i = 0; i < 3; i++){
		//	if (_vec_btnPrice[0]->getTitleText().compare(_product_list[i].price.getCString()) == 0){
		//			_vec_btnPrice[0]->setPosition(_vec_lblPrice[i]->getPosition()) ;
		//			break;
		//	}
		//	i++;
		//}
		this->scheduleOnce(schedule_selector(MultiPriceMatch::enableTools), 2.0f);

		bRet = true;
	}while(0);

	return bRet;
}
예제 #2
0
void RegisterView::onHttpRequestCompleted(HttpClient *sender, HttpResponse *response)
{
	std::string title = "\0";
	std::string msg = "\0";
    if (!response)
	{
		title = "Register Error\0";
		msg = "Register Error.\0";
		ShowMsg(title, msg);
        return;
    }   
    // You can get original request type from: response->request->reqType
    if (0 != strlen(response->getHttpRequest()->getTag()))
    {
        log("%s completed", response->getHttpRequest()->getTag());
    }   
    int statusCode = response->getResponseCode();
    char statusString[64] = {};
    sprintf(statusString, "HTTP Status Code: %d, tag = %s", statusCode, response->getHttpRequest()->getTag());

    log("response code: %d", statusCode);   
    if (!response->isSucceed())
    {
        log("response failed");
		log("error buffer: %s", response->getErrorBuffer());
		title = "Register Error\0";
		msg = "Register Error.\0";
		ShowMsg(title, msg);
        return;
    }
	if (statusCode != 200){
		log("response code failed");
		log("error buffer: %s", response->getErrorBuffer());
		title = "Register Error\0";
		msg = "Register Error.\0";
		ShowMsg(title, msg);
		return;
	}
    // dump data
    std::vector<char> *buffer = response->getResponseData();


	string sXml(buffer->begin(),buffer->end());
	pugi::xml_document doc;
	pugi::char_t cXml[1024];
	strcpy(cXml,sXml.c_str());
	pugi::xml_parse_result result = doc.load_string(cXml);

	pugi::xml_node nodes = doc.child("mobileAppRegister");

	std::string strError=nodes.child_value("error");
	char p[100];
	strcpy(p,strError.c_str());
	if(atoi(p)==0)
	{
		//get user guid
		string strUserGuid=nodes.child_value("UserGuid");
		/*UserDefault::getInstance()->setStringForKey("UserGuid", strUserGuid);
		UserDefault::getInstance()->setIntegerForKey("remember_me", 1);
		UserDefault::getInstance()->setStringForKey("tweebaa_username", sUserName);
		UserDefault::getInstance()->setStringForKey("tweebaa_Password", sPassword);
		UserDefault::getInstance()->flush();*/


		AppDelegate *app = (AppDelegate*)Application::getInstance();
		sUserName = app->base64_xxtea_encode(sUserName);
		sPassword = app->base64_xxtea_encode(sPassword);

		string strTool = DataAccess::getParamValue("Total_Tool_Num","\0");
		int iTool=0;
		if (strTool.length() > 0)
		{
			iTool = atoi(app->base64_xxtea_decode(strTool).c_str());
		}

		DataAccess::addUser(strUserGuid, sUserName, sPassword);
		_UserInfo userInfo = DataAccess::getUserInfoByName(sUserName);
		m_UserID = userInfo.nUserID;
		UserDefault::getInstance()->setIntegerForKey("CurrentUserId", m_UserID);

		app->UpdateUserScore(1, 50);
		char sTool[10];
		sprintf(sTool, "%d", iTool + 10);
		strTool = sTool;
		strTool = app->base64_xxtea_encode(strTool);
		DataAccess::setParamValue("Total_Tool_Num", strTool);
		//get it
		//string s=CCUserDefault::sharedUserDefault()->getStringForKey("UserGuid");
		//auto scene = CollageMainTab::createScene();
		/*auto scene = ChooseLayer::createScene();
		TransitionScene *transition = TransitionFade::create(1, scene);
		Director::getInstance()->replaceScene(transition);*/

		this->cleanup();
		m_Refresh = 1;
		Director::getInstance()->popScene();
	}
	if(atoi(p)==-1){

		title = "Input Error\0";
		msg = "E-mail or username already exists, please choose another one.\0";
		ShowMsg(title, msg);
	}
	if (atoi(p) == -2){
		title = "Input Error\0";
		msg = "Register Failed, please try another e-mail or username.\0";
		ShowMsg(title, msg);
	}
}
예제 #3
0
void GameLayer::touchButton(Object* obj, ::ui::Widget::TouchEventType eventType)
{
	auto button = dynamic_cast<::ui::Button*>(obj);
	int tag = button->getTag();
	if (eventType == ::ui::Widget::TouchEventType::ENDED)
	{
		AppDelegate *app = (AppDelegate*)Application::getInstance();
		app->PlayEffect(SOUND_BUTTON_CLICK);
		if (tag == 2001)
		{ //Tutorial
			auto scene = TutorialScene::create();
			if (scene != nullptr){
				TransitionScene *transition = TransitionFade::create(1, scene);
				Director::getInstance()->pushScene(transition);
			}
		}
		if (tag == 2002)
		{ //Home

			MsgBoxType m_type = TP_Q_YESNO;
			std::string title = MSG_QUIT_TITLE;
			std::string msg = MSG_QUIT_MSG;

			MsgBox::setMsgBox(m_type, &title, &msg);
			auto msgbox = MsgBox::create();
			msgbox->setTag(9000);
			this->addChild(msgbox, 999);

			//Add Event to process
			auto btnYes = dynamic_cast<Button*>(msgbox->getChildByTag(MSGBOX_UINODE)->getChildByName("btn_Yes"));// Magnifier Button
			auto btnNo = dynamic_cast<Button*>(msgbox->getChildByTag(MSGBOX_UINODE)->getChildByName("btn_No"));// Magnifier Button
			btnYes->addTouchEventListener(CC_CALLBACK_2(GameLayer::yesCallback, this));
			btnNo->addTouchEventListener(CC_CALLBACK_2(GameLayer::noCallback, this));

		}
		if (tag == 2003)
		{  //AI tips
			if (_bTlEnabled == false) return;
			_bTlEnabled = false;



			if (_nTlimit > 0)
			{
				if (_nTlcount > 0)
				{
					_nTlcount--;
					//AppDelegate *app = (AppDelegate*)Application::getInstance();
					app->setToolsNumberInfo(_nTlcount);
				}
				else
				{
					if (_lTtlScore >= 10)
					{
						showDeductPointEffect("txtScore");
						_lTtlScore = _lTtlScore - 10;
						//AppDelegate *app = (AppDelegate*)Application::getInstance();
						app->UpdateUserScore(0, 10);
					}
					else return;
				}
				_nTlimit--;
				if (_nTlimit == 0)
				{
					auto spTips = dynamic_cast<::ui::Button*>(_rootNode->getChildByName("btnTipsTools"));
					spTips->setColor(ccc3(84, 84, 84));//not disabled button, so use color instead
				}
				if (app->getBGMstatus() == BGMusic_flag::ON){
					app->PlayEffect(SOUND_TOOL_CLICK);
				}
				UseTips();
				this->scheduleOnce(schedule_selector(GameLayer::enableTools), 2.0f);
			}
			else return;
		}
	}
}