protected override void Update(GameTime gameTime) { KeyboardState keystate = Keyboard.GetState(); MouseState mousestate = Mouse.GetState(); viking.setFinish(goal.FinishVisible); mousePos = Resolution.MouseHelper.CurrentMousePosition; if (gamestate == 0) { //update menu screen gamestate = menu.Update(mousestate, mousePos, keystate, gameTime, paused); if (!paused) { viking.Initialize(GraphicsDevice); killcount = 0; } viking.setVolume(menu.getMasterVolume(), menu.getGunVolume(), menu.getMusicVolume(), menu.getOtherVolume()); } else if (gamestate == 1) { paused = false; if (viking.musicIsPaused()) { viking.resumeMusic(); } if (viking.dead()) { gamestate = 2; } updateEnemies(gameTime); updatePowerups(gameTime); updateSpiders(gameTime); updateSpawners(gameTime); goal.Update(gameTime, viking, speedModifier); timerstuff += (float)gameTime.ElapsedGameTime.TotalSeconds; if (timerstuff > waittimer) { //viking.giveExp(50); // uncomment to give constant exp //viking.damage(); // uncomment to give constant damage timerstuff = 0; } if (viking.scrollLeft && groundBlock.X < 0) { tausta1.X += (int)(250 * elapsed); tausta2.X += (int)(250 * elapsed); tausta3.X += (int)(250 * elapsed); groundBlock.X += (int)(500 * elapsed); treeRec.X += (int)(400 * elapsed); speedModifier = -(int)(500 * elapsed); spiderSpeedModifier = -(int)(400 * elapsed); levelLoc -= (int)(500 * elapsed); } else if (!viking.scrollRight) { speedModifier = 0; spiderSpeedModifier = 0; } if (viking.scrollRight && groundBlock.X > -levelLength) { tausta1.X -= (int)(250 * elapsed); tausta2.X -= (int)(250 * elapsed); tausta3.X -= (int)(250 * elapsed); groundBlock.X -= (int)(500 * elapsed); treeRec.X -= (int)(400 * elapsed); speedModifier = (int)(500 * elapsed); spiderSpeedModifier = (int)(400 * elapsed); levelLoc += (int)(500 * elapsed); } else if (!viking.scrollLeft) { speedModifier = 0; spiderSpeedModifier = 0; } //Tausta1 lähtee 0, tausta 2 lähtee 1920, tausta 3 lähtee -1920 if (tausta1.X < -1920 && viking.walkRight) { tausta3.X = tausta2.X + 1920; } if (tausta2.X < -1920 && viking.walkRight) { tausta1.X = tausta3.X + 1920; } if (tausta3.X < -1920 && viking.walkRight) { tausta2.X = tausta1.X + 1920; } //toisee suuntaa if (tausta1.X > 1920 && !viking.walkRight) { tausta2.X = tausta3.X - 1920; } if (tausta2.X > 1920 && !viking.walkRight) { tausta3.X = tausta1.X - 1920; } if (tausta3.X > 1920 && !viking.walkRight) { tausta1.X = tausta2.X - 1920; } elapsed = (float)gameTime.ElapsedGameTime.TotalSeconds; viking.Update(gameTime, elapsed, keystate, mousestate, mousePos); health.Update(viking); experience.Update(viking); } else if (gamestate == 2) { gamestate = theend.Update(gameTime); } if (keystate.IsKeyDown(Keys.Escape)) { if (gamestate == 1) { gamestate = 0; paused = true; viking.pauseMusic(); } } if (menu.menuExit()) { this.Exit(); } base.Update(gameTime); }