protected override void Update(GameTime gameTime) { if (!sound && music.State == SoundState.Playing) { music.Stop(); } else if (sound && music.State != SoundState.Playing) { music.Play(); } if (prevKeyboard != null && Keyboard.GetState().IsKeyDown(Keys.Escape) && prevKeyboard.IsKeyUp(Keys.Escape)) { if (battlefield == null) { Exit(); } else { battlefield = null; } } MouseState mouse = Mouse.GetState(); if (battlefield != null) { battlefield.update(); } else { menuTime++; if (menuTime >= 1200) { menuTime = 0; } if (prevMouseState != null && prevMouseState.LeftButton == ButtonState.Released && mouse.LeftButton == ButtonState.Pressed) { if (mouse.X / 2 >= 40 && mouse.Y / 2 >= 72 && mouse.X / 2 < 328 && mouse.Y / 2 < 92) { battlefield = new Battlefield(); } else if (mouse.X / 2 >= 8 && mouse.Y / 2 >= 100 && mouse.X / 2 < 176 && mouse.Y / 2 < 120) { sound = !sound; } else if (mouse.X / 2 >= 192 && mouse.Y / 2 >= 100 && mouse.X / 2 < 360 && mouse.Y / 2 < 120) { Exit(); } } else { for (int i = 0; i < fakeEnemies.Count; ++i) { fakeEnemies[i].position += fakeEnemies[i].velocity; if (fakeEnemies[i].position.Y <= 8 && fakeEnemies[i].velocity.Y < 0) { fakeEnemies[i].velocity.Y = -fakeEnemies[i].velocity.Y; } else if (fakeEnemies[i].position.Y >= 52 && fakeEnemies[i].velocity.Y > 0) { fakeEnemies[i].velocity.Y = -fakeEnemies[i].velocity.Y; } else if (fakeEnemies[i].position.X <= 8 && fakeEnemies[i].velocity.X < 0) { fakeEnemies[i].velocity.X = -fakeEnemies[i].velocity.X; } else if (fakeEnemies[i].position.X >= 348 && fakeEnemies[i].velocity.X > 0) { fakeEnemies[i].velocity.X = -fakeEnemies[i].velocity.X; } else { double direction = Math.Atan2(fakeEnemies[i].acceleration.Y, fakeEnemies[i].acceleration.X); double newDirection = direction - 0.1 + Battlefield.rand.NextDouble() * 0.2; double newLength = -0.1 + Battlefield.rand.NextDouble() * 0.2; fakeEnemies[i].acceleration = new Vector2((float)(newLength * Math.Cos(newDirection)), (float)(newLength * Math.Sin(newDirection))); fakeEnemies[i].velocity += fakeEnemies[i].acceleration; } } } } prevKeyboard = Keyboard.GetState(); prevMouseState = mouse; base.Update(gameTime); }