byte MiniScreen.Update(GameTime gameTime, KeyboardState prevStateKb, MouseState prevStateM) { if (flasher != null) { if ((flashCounter & 1) == 0) { flashTimer -= gameTime.ElapsedGameTime.TotalSeconds * timerMult * 4.2; } else { flashTimer += gameTime.ElapsedGameTime.TotalSeconds * timerMult * 4.2; } if (flasher.health > 0) //Attack Flash { flash.Parameters["time"].SetValue((float)(flashTimer + 0.1)); } else //Dying flash { flash.Parameters["time"].SetValue((float)(flashTimer / 1.1 + 0.01)); //the added value controls the offset, multiplication controls transition speed } if (flashTimer > 0.2) // || flashTimer < 0) { flashTimer = 0.2; flashCounter++; //flashColor = Color.Red; } else if (flashTimer < 0) { flashTimer = 0; flashCounter++; //flashColor = Color.Blue; } if (flashCounter > 11) { flasher = null; flashTimer = 0; flashCounter = 1; //flashColor = Color.Green; } switch (flashCounter) { case 0: flashColor = Color.Red; break; case 1: //Final color flashColor = Color.Transparent; break; case 2: flashColor = Color.Transparent; break; case 3: flashColor = new Color(128, 128, 64); break; case 4: flashColor = new Color(192, 192, 128); break; case 5: flashColor = new Color(192, 192, 128); break; case 6: flashColor = new Color(192, 192, 128); break; case 7: flashColor = new Color(128, 128, 64); break; case 8: flashColor = new Color(128, 128, 64); break; case 9: flashColor = new Color(128, 128, 64); break; case 10: flashColor = Color.Black; break; default: flashColor = Color.Transparent; break; } } enemy.Update(gameTime); travis.Update(gameTime, Keyboard.GetState()); world.Step((float)gameTime.ElapsedGameTime.TotalSeconds); combatTimer += gameTime.ElapsedGameTime.TotalSeconds; waiterTimer += gameTime.ElapsedGameTime.TotalSeconds; turnWaiter += gameTime.ElapsedGameTime.TotalSeconds; commandName.finishMessage(); commandName.Update(gameTime, prevStateKb, prevStateM); UpdateBackground(gameTime); if (curPhase == Phase.EnemyDeathPhase) { if (flasher == null) //Executed after flashing finishes { //Renders an extra frame at the end so the sprite is invisible during transition if (exitReady) { return(255); } if (enemy.IsKilled() && !deathMessageDisplayed) { exitReady = true; //return 255; text = new Hud(new string[] { enemy.deathMessage }, content, 30, 2, posY: 3, canClose: true); text.finishMessage(); text.visible = false; deathMessageDisplayed = true; } enemy.Kill(); } Console.WriteLine("flash: " + flashCounter); if (text.messageComplete()) { if (flashCounter == 1) { text = new Hud(new string[] { "" }, content, 30, 2, posY: 3, canClose: false); text.finishMessage(); //text.finishText(); //text.visible = false; victory = true; turnWaiter = 0; } } } if (turnWaiter > 0.2) { if (text.messageComplete()) { if (waiter != null) { if (waiter.attacked) { if (waiter is Enemy) { if (waiter.IsDone(gameTime, combatTimer)) { waiter.ForceFinish(); waiter = null; turnWaiter = 0; } } else { if (waiter.IsDone(gameTime, waiterTimer)) { waiterTimer = 0; waiter.ForceFinish(); waiter = null; turnWaiter = 0; } } } else { waiter.TakeDamage(10, combatTimer); waiter.attacked = true; } } else { advanceBattle(gameTime, prevStateKb, prevStateM); } } //else //text.Update(gameTime, prevState); if (victory && turnWaiter > 0.5) { return(255); } } text.Update(gameTime, prevStateKb, prevStateM); //prevState = Keyboard.GetState(); //if (prevStateKb.IsKeyDown(Keys.Q) && Keyboard.GetState().IsKeyUp(Keys.Q)) // return 255; return(toReturn); }
public byte Update(GameTime dt, KeyboardState prevStateKb, MouseState prevStateM) { if (enemiesKilled == 3) { return(255); } timer += dt.ElapsedGameTime.TotalSeconds * 2; //Don't need widthOffset due to body position being centered around the body int widthOffset = shipWidth / 2; MouseState mState = Mouse.GetState(); KeyboardState kbState = Keyboard.GetState(); if (kbState.IsKeyDown(Keys.Right) || kbState.IsKeyDown(Keys.Left)) { usingKeyboard = true; } else if (mState.Position != prevStateM.Position) { usingKeyboard = false; mouseX = shipBody.Position.X; } if (usingKeyboard) { Vector2 pos = shipBody.Position; if (kbState.IsKeyDown(Keys.Right)) { shipBody.SetTransform(new Vector2((float)(pos.X + maxVelocity * dt.ElapsedGameTime.TotalSeconds), Game1.height - ship.Height - 6), 0); } else if (kbState.IsKeyDown(Keys.Left)) { shipBody.SetTransform(new Vector2((float)(pos.X - maxVelocity * dt.ElapsedGameTime.TotalSeconds), Game1.height - ship.Height - 6), 0); } } else { mousePos = (int)(mState.X * Game1.resMultiplier); if (mouseX <= Game1.width && mousePos - mouseX > 5) { mouseX += maxVelocity * dt.ElapsedGameTime.TotalSeconds; } else if (mouseX >= shipWidth / 2 && mousePos - mouseX < -5) { mouseX -= maxVelocity * dt.ElapsedGameTime.TotalSeconds; } shipBody.SetTransform(new Vector2((float)mouseX, Game1.height - ship.Height - 6), 0); } if ((kbState.IsKeyDown(Keys.Space) && prevStateKb.IsKeyUp(Keys.Space)) || (prevStateM.LeftButton == ButtonState.Released && Mouse.GetState().LeftButton == ButtonState.Pressed)) { pellets.Add(new Pellet(world, (int)shipBody.Position.X)); } double pelletDt = dt.ElapsedGameTime.TotalSeconds * 200; for (int i = 0; i < pellets.Count; i++) { if (pellets[i] != null && (pellets[i].Update(pelletDt))) { pellets.RemoveAt(i); } } for (int i = 0; i < aliens.Count; i++) { if (aliens[i] != null) { aliens[i].Update(dt.ElapsedGameTime.TotalSeconds); } } world.Step((float)dt.ElapsedGameTime.TotalSeconds); //UpdateBackground(dt); return(1); }
public byte Update(GameTime dt, KeyboardState prevStateKb, MouseState prevStateM) { if (collectedCount < 0) { return(2); } timer += dt.ElapsedGameTime.TotalSeconds * 2; bgTimer += dt.ElapsedGameTime.TotalSeconds * 24; //background moves at 24fps bgTimer %= 149; //Don't need widthOffset due to body position being centered around the body int widthOffset = basket.Width / 2; MouseState mState = Mouse.GetState(); KeyboardState kbState = Keyboard.GetState(); if (kbState.IsKeyDown(Keys.Right) || kbState.IsKeyDown(Keys.Left)) { usingKeyboard = true; } else if (mState.Position != prevStateM.Position) { usingKeyboard = false; mouseX = basketBody.Position.X; } if (usingKeyboard) { Vector2 pos = basketBody.Position; if (kbState.IsKeyDown(Keys.Right)) { facingLeft = false; basketBody.SetTransform(new Vector2((float)(pos.X + maxVelocity * dt.ElapsedGameTime.TotalSeconds), Game1.height - basket.Height / 2 - 18), 0); } else if (kbState.IsKeyDown(Keys.Left)) { facingLeft = true; basketBody.SetTransform(new Vector2((float)(pos.X - maxVelocity * dt.ElapsedGameTime.TotalSeconds), Game1.height - basket.Height / 2 - 18), 0); } } else { mousePos = (int)(mState.X * Game1.resMultiplier); if (mouseX <= Game1.width && mousePos - mouseX > 5) { facingLeft = false; mouseX += maxVelocity * dt.ElapsedGameTime.TotalSeconds; } else if (mouseX >= basket.Width / 2 && mousePos - mouseX < -5) { facingLeft = true; mouseX -= maxVelocity * dt.ElapsedGameTime.TotalSeconds; } basketBody.SetTransform(new Vector2((float)mouseX, Game1.height - basket.Height / 2 - 18), 0); } //Destroys apples that go below the screen for (int i = 0; i < apples.Count; i++) { if (apples[i] != null && (apples[i].Update(dt.ElapsedGameTime.TotalSeconds * 2))) { apples.RemoveAt(i); } } spawnTimer += dt.ElapsedGameTime.TotalSeconds; if (spawnTimer > 1) { spawnTimer = 0; int spawnPoint = random.Next(20, Game1.width - 20); if (spawnedCount < 2 || !spawnBadApples) { apples.Add(new Apple(world, apple, false, spawnPoint)); spawnedCount++; } else { //Spawn bad apple spawnedCount = 0; apples.Add(new Apple(world, badApple, true, spawnPoint)); } } if (collectedCount == 3) { return(255); } world.Step((float)dt.ElapsedGameTime.TotalSeconds); return(1); }