void toggleDisplay(){ int temp = displayMode + 1; temp = temp % 3; displayMode = temp; clearDisplay(); if(displayMode == 0){ displaySpeed(); }else if(displayMode == 1){ displayDistance(); }else if(displayMode == 2){ displayTime(); } }
void displayCalculations(){ switch(displayMode){ case 0: displaySpeed(); break; case 1: displayDistance(); break; case 2: displayTime(); break; default: displayNumbers(-1,-1,-1,-1); break; } }
void PlayLayer::gameProc(float delta) { this->updateSpeed(); cocos2d::Size s = Director::getInstance()->getWinSize(); DoodleTruck *doodleTruck = DoodleTruck::sharedDoodleTruck(); extern float g_accelY; #ifdef DEBUG_MODE extern float g_accelX; //[lblTest setString:[NSString stringWithFormat:@"%f %f", g_accelX, g_accelY]]; #endif if (tilt_enabled) { cpSpace *space = DoodleTruck::sharedDoodleTruck()->getSpace(); space->gravity = cpv(g_accelY * DEFAULT_GRAVITY, DEFAULT_GRAVITY); } Sprite *truck_sprite = truck->getBodySprite(); Vec2 pt_diff = truck_sprite->getPosition() - truck_oldpos; truck_oldpos= truck_sprite->getPosition(); /*float end_pos = receiver_sprite->getPosition().x - receiver_sprite->getContentSize().width / 2.0f + 60 * doodleTruck->getScaleX(); if (truck_sprite->getPosition().x >= end_pos) { doneFinish(); }*/ if (truck_sprite->getPosition().x > 100/* && truck_sprite->getPosition().x < end_pos*/) { displayDistance(truck_sprite->getPosition().x); terrain->setOffsetX(truck_sprite->getPosition().x); moving_layer->setPosition(moving_layer->getPosition() - pt_diff); } /*if (fabs(pt_diff.x) < 2.5) { if (fabs(truck->getBodySprite()->getRotation()) > 120.0f) doneTruckReversed(); }*/ // UPDATE COIN numCoinLabel->setString(CoinManager::sharedCoinManager()->getCoinString()); // UPDATE FUEL float fuel = CoinManager::sharedCoinManager()->getFuel(); fuel -= 0.3; if(fuel <= 0) { fuel = 0; } CoinManager::sharedCoinManager()->setFuel(fuel); displayFuelProgress(fuel); if(fuel < 20 && fuelCharged) { fuelCharged = false; fuelWarning->setVisible(true); fuelWarning->setOpacity(0); FadeIn * fadeIn = FadeIn::create(0.5); FadeOut * fadeOut = FadeOut::create(0.3); fuelWarning->runAction(Sequence::create(fadeIn, fadeOut, fadeIn, fadeOut, fadeIn, fadeOut, fadeIn, fadeOut, fadeIn, fadeOut, fadeIn, fadeOut, NULL)); } if(fuel > 20 && !fuelCharged) { fuelCharged = true; fuelWarning->stopAllActions(); fuelWarning->setVisible(false); } // UPDATE RPM int rpm = pt_diff.x / delta; measureRPM->setRPM(rpm); }
void PlayLayer::setupChild() { Director::getInstance()->getTextureCache()->removeAllTextures(); cocos2d::Size s = Director::getInstance()->getWinSize(); DoodleTruck *doodleTruck = DoodleTruck::sharedDoodleTruck(); old_wheel_rot = 0.0f; diff_rot = 0.0f; game_stoped = false; game_result = GAME_PAUSE; truck_reversed = false; g_sound_enabled = true; tilt_enabled = false; Sky *sky = new Sky(); this->addChild(sky); moving_layer = Layer::create(); this->addChild(moving_layer); doodleTruck->initBox2D(); if(terrain != NULL) { delete terrain; } terrain = new Terrain(); terrain->setupChipmunk(); if(truck != NULL) delete truck; truck = new Truck(); moving_layer->addChild(truck->getDriver_Head(), NEAR_LAYER); moving_layer->addChild(truck->getDriver_Body(), NEAR_LAYER); moving_layer->addChild(truck->getBodySprite(), NEAR_LAYER); moving_layer->addChild(truck->getLWheelSprite(), NEAR_LAYER); moving_layer->addChild(truck->getRWheelSprite(), NEAR_LAYER); truck->adjustPosition(Vec2(ROAD_BEGIN_x * doodleTruck->getScaleX(), 332/*roadManager->getMinY()*/)); truck->setupChipmunk(); truck_oldpos = truck->getBodySprite()->getPosition(); terrain->setOffsetX(truck->getBodySprite()->getPosition().x - 281.66); moving_layer->addChild(terrain, 5); CoinManager::sharedCoinManager()->showCoinData(moving_layer); //roadManager->addVisibleRoad(moving_layer); forward_item = new DirectionSprite(FORWARD, this); backward_item = new DirectionSprite(BACKWARD, this); forward_item->setPosition(Vec2(s.width/7 * 6, s.height/6)); backward_item->setPosition(Vec2(s.width/7, s.height/6)); this->addChild(forward_item); this->addChild(backward_item); forward_item->setScale(DoodleTruck::sharedDoodleTruck()->getScaleY()); backward_item->setScale(DoodleTruck::sharedDoodleTruck()->getScaleY()); measureRPM = new MeasureRPM(); measureBoost = new MeasureBoost(); this->addChild(measureRPM); this->addChild(measureBoost); measureRPM->setScale(measureRPM->getScale() * 0.8); measureBoost->setScale(measureBoost->getScale() * 0.8); measureRPM->setPosition(Vec2(s.width/7 * 2.75, s.height/6)); measureBoost->setPosition(Vec2(s.width/7 * 4.25, s.height/6)); Sprite *disSprite = XSprite::xspriteWithFileWithYScale("distance-icon.png"); this->addChild(disSprite); disSprite->setPosition(disSprite->getContentSize().width * doodleTruck->getScaleY() / 2 + 10, s.height - disSprite->getContentSize().height * doodleTruck->getScaleY() / 2 - 5); char str[100]; sprintf(str, "0m / %dm", LevelManager::sharedLevelManager()->getLevelDistance(currentLevel)); curDistanceLabel = Label::createWithBMFont("gamefont.fnt", str); curDistanceLabel->setScale(0.9); this->addChild(curDistanceLabel); curDistanceLabel->setAnchorPoint(Vec2(0, 0.5)); curDistanceLabel->setPosition(disSprite->getPosition() + Vec2(disSprite->getContentSize().width * doodleTruck->getScaleY() / 2 + 10, 0)); Label *tempLabel = Label::createWithBMFont("gamefont.fnt", "("); tempLabel->setScale(0.9); this->addChild(tempLabel); tempLabel->setAnchorPoint(Vec2(0, 0.5)); tempLabel->setPosition(curDistanceLabel->getPosition() + Vec2(curDistanceLabel->getContentSize().width * curDistanceLabel->getScaleX() + 30, 0)); Sprite *bestDisSprite = Sprite::create("best-length.png"); bestDisSprite->setScale(curDistanceLabel->getContentSize().height / bestDisSprite->getContentSize().height); bestDisSprite->setAnchorPoint(Vec2(0, 0.5)); this->addChild(bestDisSprite); bestDisSprite->setPosition(tempLabel->getPosition() + Vec2(tempLabel->getContentSize().width + 7, -10)); sprintf(str, "%dm)", bestDistance); bestDistanceLabel = Label::createWithBMFont("gamefont.fnt", str); bestDistanceLabel->setScale(0.9); this->addChild(bestDistanceLabel); bestDistanceLabel->setAnchorPoint(Vec2(0, 0.5)); bestDistanceLabel->setPosition(bestDisSprite->getPosition() + Vec2(bestDisSprite->getContentSize().width * bestDisSprite->getScale() + 10, 10)); Sprite *fuelSprite = XSprite::xspriteWithFileWithYScale("fuel-icon.png"); this->addChild(fuelSprite); fuelSprite->setPosition(fuelSprite->getContentSize().width * doodleTruck->getScaleY() / 2 + 10, s.height - fuelSprite->getContentSize().height * doodleTruck->getScaleY() * 3 / 2 - 10); Sprite *progressBg = Sprite::create("progressbar-bg.png"); this->addChild(progressBg, 3); progressBg->setAnchorPoint(Vec2(0, 0.5)); progressBg->setPosition(curDistanceLabel->getPosition().x, fuelSprite->getPosition().y); progressSprite = Sprite::create("progressbar.png"); progress = ProgressTimer::create(progressSprite); progress->setScale(1.0, progressBg->getContentSize().width / progress->getContentSize().width); progress->setType(ProgressTimer::Type::BAR); progress->setAnchorPoint(Vec2(0, 0.5)); progress->setPosition(progressBg->getPosition() + Vec2(2, 1)); progress->setMidpoint(Vec2(0, 1)); progress->setBarChangeRate(Vec2(1, 0)); this->addChild(progress, 2); displayFuelProgress(100); fuelCharged = true; fuelWarning = Sprite::create("fuel-warning.png"); fuelWarning->setPosition(Vec2(s.width / 2, s.height * 0.4)); fuelWarning->setVisible(false); this->addChild(fuelWarning, 30); Sprite *coinSprite = XSprite::xspriteWithFileWithYScale("coin-icon.png"); this->addChild(coinSprite); coinSprite->setPosition(coinSprite->getContentSize().width * doodleTruck->getScaleY() / 2 + 10, s.height - coinSprite->getContentSize().height * doodleTruck->getScaleY() * 5 / 2 - 15); numCoinLabel = Label::createWithBMFont("gamefont.fnt", "000 000"); numCoinLabel->setScale(0.9); this->addChild(numCoinLabel); numCoinLabel->setAnchorPoint(Vec2(0, 0.5)); numCoinLabel->setPosition(curDistanceLabel->getPosition().x, coinSprite->getPosition().y); PauseSprite *pauseSprite = new PauseSprite(); this->addChild(pauseSprite); pauseSprite->setScale(pauseSprite->getScaleY() * 1.3); pauseSprite->setPosition(s.width - pauseSprite->getContentSize().width * pauseSprite->getScale() / 2 - 5, s.height - pauseSprite->getContentSize().height * pauseSprite->getScale() / 2 - 5); initRealX = truck->getBodySprite()->getPosition().x; currentDistance = 0; displayDistance(initRealX); if (doodleTruck->getMode()) game_time = getLimitTime(doodleTruck->getMapIndex()); else game_time = 0; MenuItemImage * item_time_title = MenuItemImage::create(IMG_TIME, IMG_TIME); doodleTruck->adjustScale(item_time_title); item_time_title->setPosition(Vec2(item_time_title->getContentSize().width / 2.0f * doodleTruck->getScaleX(), s.height - item_time_title->getContentSize().height * doodleTruck->getScaleY())); int min = game_time / 60; int sec = game_time - min * 60; moving_layer->addChild(ChipmunkDebugNode::create(DoodleTruck::sharedDoodleTruck()->getSpace())); if (!sound_load_flag) { //loadSound(doodleTruck->isSoundEnabled()); sound_load_flag = true; } //loadMusic(doodleTruck->isMusicEnabled()); //playMusic(); this->addCollisionFunc(); // set up the time delay DelayTime *delayAction = DelayTime::create(0.5f); // perform the selector call CallFunc *callSelectorAction = CallFunc::create(CC_CALLBACK_0(PlayLayer::startSchedules, this)); // run the action this->runAction(Sequence::create(delayAction, callSelectorAction, NULL)); }