// Arguments: char*, char* // Ret value: void JSBool JSB_localStorageSetItem(JSContext *cx, uint32_t argc, jsval *vp) { JSB_PRECONDITION2( argc == 2, cx, JS_FALSE, "Invalid number of arguments" ); jsval *argvp = JS_ARGV(cx,vp); JSBool ok = JS_TRUE; const char* arg0; const char* arg1; ok &= jsval_to_charptr( cx, *argvp++, &arg0 ); ok &= jsval_to_charptr( cx, *argvp++, &arg1 ); JSB_PRECONDITION2(ok, cx, JS_FALSE, "Error processing arguments"); localStorageSetItem((char*)arg0 , (char*)arg1 ); JS_SET_RVAL(cx, vp, JSVAL_VOID); return JS_TRUE; }
// Arguments: char*, char* // Ret value: void bool JSB_localStorageSetItem(JSContext *cx, uint32_t argc, jsval *vp) { JSB_PRECONDITION2( argc == 2, cx, false, "Invalid number of arguments" ); JS::CallArgs args = JS::CallArgsFromVp(argc, vp); bool ok = true; std::string arg0; std::string arg1; ok &= jsval_to_std_string( cx, args.get(0), &arg0 ); ok &= jsval_to_std_string( cx, args.get(1), &arg1 ); JSB_PRECONDITION2(ok, cx, false, "Error processing arguments"); localStorageSetItem(arg0 , arg1); args.rval().setUndefined(); return true; }
void CommonHttpResponseCallBack::onResponseJson(CAHttpClient* client, CAHttpResponse* response) { CommonHttpManager::getInstance()->stopActivityIndicatorView(); CC_RETURN_IF(!m_pSelectorJson); if (response->isSucceed()) { std::string data(response->getResponseData()->begin(), response->getResponseData()->end()); if (!data.empty()) { localStorageSetItem(MD5(m_sUrl).md5().c_str(), data.c_str()); if (CAViewController* viewController = dynamic_cast<CAViewController*>(m_pTarget)) { CC_RETURN_IF(viewController->isViewRunning() == false); } //CCLog("\n \n \n---------HttpResponse--json---------\n<<<\n%s\n>>>\n--------------END--------------\n \n \n",data.c_str()); CSJson::Reader read; CSJson::Value root; bool succ = read.parse(data, root); if (succ == false) { CCLog("GetParseError \n"); } if (m_pTarget) { (m_pTarget->*m_pSelectorJson)(HttpResponseSucceed, root); } } else { if (CAViewController* viewController = dynamic_cast<CAViewController*>(m_pTarget)) { CC_RETURN_IF(viewController->isViewRunning() == false); } CSJson::Value root; if (m_pTarget) { (m_pTarget->*m_pSelectorJson)(HttpResponseFaild, root); } } } else { if (CAViewController* viewController = dynamic_cast<CAViewController*>(m_pTarget)) { CC_RETURN_IF(viewController->isViewRunning() == false); } const char* data = localStorageGetItem(MD5(m_sUrl).md5().c_str()); do { CC_BREAK_IF(data == NULL); CSJson::Reader read; CSJson::Value root; bool succ = read.parse(data, root); if (succ == false) { CCLog("GetParseError \n"); break; } if (m_pTarget) { (m_pTarget->*m_pSelectorJson)(HttpResponseSucceed, root); } return; } while (0); CSJson::Value root; if (m_pTarget) { (m_pTarget->*m_pSelectorJson)(HttpResponseFaild, root); } } }
void LocalStore::set(char* szKey,float value) { remove(szKey); localStorageSetItem(szKey,__String::createWithFormat("%f",value)->getCString()); }
void LocalStore::set( std::string key,std::string value ) { remove(key.c_str()); localStorageSetItem(key.c_str(),value.c_str()); }
void LocalStore::set( char* szKey,char* szValue ) { remove(szKey); localStorageSetItem(szKey,szValue); }
void GBSqlite::setStringForKey(const char* key, const std::string & value) { localStorageSetItem(key, value); }
void GBSqlite::setFloatForKey(const char* key, float value) { localStorageSetItem(key, StringUtils::format("%f", value)); }
void GBSqlite::setIntegerForKey(const char* key, int value) { localStorageSetItem(key, StringUtils::format("%d", value)); }
void GBSqlite::setBoolForKey(const char* key, bool value) { localStorageSetItem(key, value ? "true" : "false"); }
void SaveLoad::Save() { localStorageSetItem("SaveGame",(char*)&m_SaveData,sizeof(SaveLoad::SaveData)); }
void GameWorld::updategame(float dt){ //CCLOG("update game"); Vector<Plane*> targets2Delete; //CCLOG("111, _targets: %zd.", _targets.size()); Vector<Plane*>::iterator iter;//; for (iter = _targets.begin(); iter != _targets.end(); iter++) { // target的碰撞体积 Plane* target = dynamic_cast<Plane*>(*iter); Rect targetRect = target->boundingBox(); // plane的碰撞矩形 Rect planeRect = _myPlane->boundingBox(); // plane与target的碰撞检测 if(targetRect.intersectsRect(planeRect)){ if(target->getTag() == 4){ CCLOG("package\n"); // if package and plane collide //doubleBulletFlag = true; this->scheduleOnce(schedule_selector(GameWorld::setDoubleBulletFlagF), 5); targets2Delete.pushBack(target); } else { CCLOG("game end."); // if enemy and plane collide auto gameOverScene = GameOverScene::create(); gameOverScene->getLayer()->getLabel()->setString(" "); gameOverScene->getLayer()->setCurrentScore(score); // converts 'int' to 'string' std::stringstream ss; std::string str; ss<<score; ss>>str; const char *pHighScore = str.c_str(); // converts 'const char *' to 'int' const char *highScore = localStorageGetItem("high_score").c_str(); if(highScore != NULL ){ int highScoreInt = std::atoi(highScore); // If higher than the highest score ,your score will replace it; if(highScoreInt<score) CCLOG("high_score: %s.", pHighScore); localStorageSetItem("high_score", pHighScore); }else{ localStorageSetItem("high_score", pHighScore); CCLOG("high_score: %s.", pHighScore); } gameOverScene->getLayer()->getScore()->setString(pHighScore); Director::getInstance()->replaceScene(gameOverScene); } } //CCLOG("222, bullet: %zd.", _bullets.size()); Vector<Sprite*> bullets2Delete; Vector<Sprite*>::iterator iterB; //bullet与target的碰撞 for (iterB = _bullets.begin(); iterB != _bullets.end(); iterB++) { //CCARRAY_FOREACH(_bullets, bulletsIterator){ auto bullet = dynamic_cast<Sprite*>(*iterB); Rect bulletRect = bullet->boundingBox(); if(targetRect.intersectsRect(bulletRect)){ target->attacked++; //CCLOG("target attacked: %d.", target->attacked); bullets2Delete.pushBack(bullet); } } /* CCLOG("333"); for (iterB = bullets2Delete.begin(); iterB != bullets2Delete.end(); iter++) { //CCARRAY_FOREACH(bullets2Delete, bulletsIterator){ auto bullet = dynamic_cast<Sprite*>(*iterB); _bullets.eraseObject(bullet); this->removeChild(bullet); }*/ if(target->attacked >= target->attackedCount){ targets2Delete.pushBack(target); } bullets2Delete.clear(); } //CCLOG("444, targets2Delete: %zd.", targets2Delete.size()); for (iter = targets2Delete.begin(); iter != targets2Delete.end(); iter++) { //CCARRAY_FOREACH(targets2Delete, targetIterator){ auto target = dynamic_cast<Plane*>(*iter); _targets.eraseObject(target); if(target->getTag() == 1){ score+=10; }else if(target->getTag() == 2){ score+=20; }else if(target->getTag() == 3){ score+=50; //CocosDenshion::SimpleAudioEngine::sharedEngine()->playEffect("explosion.mp3"); }else if(target->getTag() == 4){ CCLOG("target is the package"); this->scheduleOnce(schedule_selector(GameWorld::setDoubleBulletFlagF), 5); doubleBulletFlag = true; } this->removeChild(target); std::stringstream ss; std::string str; ss<<score; ss>>str; const char *p = str.c_str(); scoreLabel->setString(p); //CCLOG("888"); } targets2Delete.clear(); //CCLOG("555"); }