void updateGame(Game *game){ game->totalTime++; if(game->levelTime){ game->levelTime++; addEnemies(game);//Adds enemies and checks if level is finished } updateTowers(game); updateEnemies(game); updateBullets(game); };
void rScene5::update(float deltaTime) { pollEvents(); m_deltaTime = deltaTime; playerStep(); moveSpotlight(player->getX(), player->getY()); updatePotatoes(); updateEnemies(); updateBullets(); if (player->getX() > 928) message = "go:Scene6"; }
void GameScene::update(float dt) { updateHero(dt); adaptPlayerPosition(); updateAnimationState(); m_flamesParticle->setPosition(ccpAdd(m_hero->getPosition(), ccp(-m_hero->getContentSize().width * 0.25f, -m_hero->getContentSize().height * 0.25f))); spawnEnemies(dt); updateEnemies(dt); updateProjectiles(dt); if (m_hp <= 0) { gameOver(); } m_background->update(); // Update Box2D world //world->Step(dt, 6, 3); // BOX2D TIP // Update objects from box2d coordinates here }
//-------------------------------------------------------------- void ofApp::update(){ float dt = ofGetLastFrameTime(); pRetryBtn->update(); pHpBar->update(); if(bGameRunning) { randBornEnemy(dt); updateEnemies(dt); deque<ofPtr<DrawGame::CircleSprite> >::iterator itEnemy; for(itEnemy=Enemies.begin(); itEnemy!=Enemies.end(); itEnemy++) { ofPtr<DrawGame::CircleSprite> En = *itEnemy; if(pPlayer->isSameColor(*En)&&pPlayer->encompass(*En)) { HP += HPEatAmt; eraseEnemy(itEnemy, "Eat"); break; } if(!pPlayer->isSameColor(*En)&&En->encompass(*pPlayer)) { eraseEnemy(itEnemy,"Coin"); HP+= CoinValue; break; } if(pPlayer->isSameColor(*En)&&En->encompass(*pPlayer)) { HP-=HPBeatAmt; eraseEnemy(itEnemy,"Beat"); if(HP<=0.0f) { GameOverString = "You're Exhausted!"; gameOver(); } break; } if(En->getSize()<25.0f&&En->getbWhite()) { eraseEnemy(itEnemy," "); break; } } if(KeysState['a']) { pPlayer->changeRot(-360.0f*dt); } else if(KeysState['d']) { pPlayer->changeRot(360.0f*dt); } if(MouseKeyState[0]) { HP+= dt*HPIncSpd; } } HP = ofClamp(HP,0,HPMax); // 根据是否按住GUI来判断是否显示光标 bool bPressGUI = GUI_Debug.getShape().inside( ofVec2f(ofGetMouseX(),ofGetMouseY())); if(bPressGUI&&bShowDebug) { ofShowCursor(); } else { ofHideCursor(); } }
void LevelGenerator::update(core::Siika2D *siika) { glm::vec2 ushikoPos = siika->transfCrds()->deviceToUser(ushiko.go->getComponent<misc::TransformComponent>()->getPosition()); ushikoPos.x += 100; ushikoPos.y = -ushikoPos.y; // Ushiko has fallen and can't get up if (ushikoPos.y < -siika->_graphicsContext->getDisplaySize().y * 3) { ushiko.health -= ushiko.healthMax; sound.playSound(KUOLONKORINA); return; } updateTiles(ushikoPos); updateCollectables(ushikoPos); updatePuffs(siika); /* ----- SPAWNING TILES & ENEMIES ----- */ updateEnemies(siika, ushikoPos); tileMovement += 1; if (tileMovement >= 14) { tileMovement = 0; glm::vec2 screenSize = siika->_graphicsContext->getDisplaySize(); if (platformSpawned < platformLength) { spawnTile(siika, screenSize.x * 1.8, -yLevel); platformSpawned += 1; // 25% chance (per tile) to spawn an enemy on a tile past the half-way point of the platform if (!platformHasEnemy && platformSpawned > (int)(platformLength / 2) && platformSpawned != platformLength && lrand48() % 4 == 0 && generatorName != "boss") { spawnEnemy(siika, screenSize.x * 1.8, -yLevel + 240); platformHasEnemy = true; } // Spawn a coin on every 4th platform, starting from 3rd platform (#2) if (platformNum == 2 && platformSpawned == (int)(platformLength / 2) - 1) { spawnCollectable(siika, screenSize.x * 1.8, -yLevel + 220); } } else { platformLength = lrand48() % 10; if (generatorName == "forest") platformLength += 4; else if (generatorName == "castle" || generatorName == "boss") platformLength += 2; else platformLength += 6; platformSpawned = 0; platformHasEnemy = false; platformNum += 1; if (platformNum > 3) // Platforms are #0-3 platformNum = 0; int previousY = yLevel; while (yLevel == previousY) { // Change the (Y) level of the new platform yLevel = lrand48() % 3; switch (yLevel) { case 0: yLevel = 580; break; case 1: yLevel = screenSize.y * 2 - 240; break; default: yLevel = screenSize.y * 2 + 400; break; } } } } }
void PlayState::update() { // Shake the background up and down when bomb is used if(bombAnimation) { bombAnimationCount++; bombShakeCounter++; // Up if(bombShakeCounter < 5) { starsBG_Pos.y -= 2; } // Down + Down else if(bombShakeCounter < 15) { starsBG_Pos.y += 2; } // Up else if(bombShakeCounter < 20) { starsBG_Pos.y -= 2; } // Reset else { bombShakeCounter = 0; --starsBG_Pos.y; } if(bombAnimationCount == BOMB_ANIMATION_LENGTH) { bombAnimationCount = 0; bombAnimation = false; } } // Move BG ++bgMoveCounter; if(bgMoveCounter > 2) { ++starsBG_Pos.x; bgMoveCounter = 0; } REG_BG0VOFS = starsBG_Pos.y; REG_BG0HOFS = starsBG_Pos.x; updateText(); // Update the stage currentStage->update(); // Checks for button pushes and updates accordingly checkInput(); updatePlayer(); // Udates the PowerUp and checks for collisions updatePowerUp(); // Updates all of the enemies and has them fire. updateEnemies(); // Updates all of the bullets and checks for collisions updateBullets(); }
/* Uses: Affects: */ void Territory::update(UpdateInfo info, Controls * controls, Sounds * sounds) { this->sounds = sounds; // Update all player projectiles /* Uses: playerProjectile Affects: playerProjectile */ updatePlayerProjectiles(info, controls); /* Uses: playerProjectiles(boundingBox), enemies(boundingBox), playerProjectiles(piercing) Affects: playerProjectiles(piercing), enemies(hp), effects(spawns) */ collidePlayerProjectiles(info, controls); // Update all enemies. /* Uses: enemies Affects: enemies */ updateEnemies(info); // Check if the player is hit by enemy projectiles. /* Uses: enemyProjectiles Affects: enemyProjectiles */ updateEnemyProjectiles(info, controls); /* Uses: enemyProjectiles(boundingBox), player(boundingBox), enemyProjectiles(piercing) Affects: enemyProjectiles(piercing), player(hp), sounds(play) */ collideEnemyProjectiles(info, controls); /* Uses: enemyProjectiles(boundingBox), player(isInSafe), partitionedSafeZonesTiles(boundingBox) Affects: enemyProjectiles(expend) */ collideEnemyProjectilesSafe(info, controls); // Update player and safe zone checks. /* Uses: player(getBoundingBox, getConvexHull, getSpeed), safeZonesTiles(getBoundingBox, getConvexHull) Affects: player(update, setIsInSafeZone, setSafeZoneIndex) */ updatePlayer(info, controls); // Update all effects. /* Uses: effects Affects: effects */ updateEffects(info); // Spawn enemy /* Uses: enemySpawner, getSpawnPoints Affects: enemySpawner, spawnQueue, entityCluster.getCollection(1), entityCluster.getCollection(0) */ enemySpawner.update(getSpawnPoints(), spawnQueue, player, entityCluster.getCollection(1), entityCluster.getCollection(0), info); // Background tile stuff. /* Uses: tileColorings Affects: floorTiles(setColor), tileColorings */ cleanFloorTiles(); // Enemy aura colorization on floor tiles. /* Uses: enemies(getPosition), territory(getPosition), floorTiles(getColor) Affects: floorTiles(setColor), tileColorings */ colorEnemyAuraTiles(); // Beware this section can change if this territory is active. // Handle the case of the player trying to cross the territory border. /* Uses: floorTiles,player(getBoundingBox, getConvexHull, getPosition, getSpeed), this(position) Affects: world(changeTerritory), player(setPosition) */ collideBorderTiles(); }