public mainPlayer(Vector3 Pos, Vector2 centre, float aspectRatio) : base(Pos) { currentlyEquipped = Weapons.none; for (int i = 0; i < bulletlist.Length; i++) { bulletlist[i] = new Bullet(Pos,100.0f); bulletlist[i].Active = false; } shortRange = new Bullet(Pos, 20.0f); LongRange = new Bullet(Pos, 1000.0f); shortRange.Active = false; LongRange.Active = false; available = Weapons.none; eyes = new Camera(Pos, Vector3.Zero, Vector3.Up, centre); eyes.setPerspectiveProjection(45.0f, aspectRatio, 2.0f, 1000.0f); }
/// <summary> /// Allows the game to run logic such as updating the world, /// checking for collisions, gathering input, and playing audio. /// </summary> /// <param name="gameTime">Provides a snapshot of timing values.</param> protected override void Update(GameTime gameTime) { // Allows the game to exit if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed) this.Exit(); keyboardState = Keyboard.GetState(); mouseState = Mouse.GetState(); Gamepad = GamePad.GetState(PlayerIndex.One); #region Universal userControl if (currentcState == controllerState.User) { if (keyboardState.IsKeyDown(Keys.Down)) { currentcState = controllerState.Debug; } } #endregion #region debug controls if (currentcState == controllerState.Debug) { if (keyboardState.IsKeyDown(Keys.D1)) { currentState = gameState.StartMenu; } if (keyboardState.IsKeyDown(Keys.D4)) { currentState = gameState.Game; } if (keyboardState.IsKeyDown(Keys.D0)) { currentcState = controllerState.User; } if (keyboardState.IsKeyDown(Keys.F)) { Fog = true; } if (keyboardState.IsKeyDown(Keys.D)) { Fog = false; } if(keyboardState.IsKeyDown(Keys.G)) { currentSubGame = subGameState.godSpeed; } if (keyboardState.IsKeyUp(Keys.U)) { player.available = mainPlayer.Weapons.LongRange; } } #endregion #region Difficulty if (currentState == gameState.DifficultySelect) { Hard.Active = true; Medium.Active = true; Hard.setText("Hard", Button.Width, Button.Height); Medium.setText("Medium", Button.Width, Button.Height); this.IsMouseVisible = true; if (mouseState.LeftButton == ButtonState.Pressed) { Hard.CollisionCheck(mouseState, Button.Width, Button.Height); Medium.CollisionCheck(mouseState, Button.Width, Button.Height); if (Hard.Pressed == true) { Fog = true; currentState = gameState.ControllerSelect; Hard.Pressed = false; } if (Medium.Pressed == true) { Fog = false; currentState = gameState.ControllerSelect; Medium.Pressed = false; } } Hard.Active = false; Medium.Active = false; } #endregion #region StartMenu if (currentState == gameState.StartMenu) { StartButton.setText("Start", Button.Width, Button.Height); StartButton.Active = true; this.IsMouseVisible = true; if (mouseState.LeftButton == ButtonState.Pressed) { StartButton.CollisionCheck(mouseState, Button.Width, Button.Height); if (StartButton.Pressed == true) { currentState = gameState.DifficultySelect; StartButton.Pressed = false; StartButton.Active = false; } } } #endregion #region Controller selectScreen if (currentState == gameState.ControllerSelect) { ScreenSize = new Rectangle(0, 0, GraphicsDevice.Viewport.Width, GraphicsDevice.Viewport.Height); if (Gamepad.Buttons.A == ButtonState.Pressed) { currentcontroller = GameController.Joypad; currentState = gameState.ControlLesson; } if (keyboardState.IsKeyDown(Keys.Enter)) { currentcontroller = GameController.Keyboard; currentState = gameState.ControlLesson; } } #endregion #region ControlLesson if (currentState == gameState.ControlLesson) { if (keyboardState.IsKeyDown(Keys.S) || Gamepad.Buttons.B == ButtonState.Pressed) { currentState = gameState.Game; } } #endregion #region GameState Game if (currentState == gameState.Game) { this.IsMouseVisible = false; #region Keyboard stuffs if (currentcontroller == GameController.Keyboard) { if (keyboardState.IsKeyDown(Keys.B)) { currentcamera = newcamera; } if (keyboardState.IsKeyDown(Keys.L)) { currentcamera = player.eyes; } if (keyboardState.IsKeyDown(Keys.T)) { currentcamera = thirdPerCamera; } } #endregion for (int i = 0; i < redballoon.Length; i++) { redballoon[i].update(); } player.shortRange.update(player.Position); player.LongRange.update(player.Position); if (currentcontroller == GameController.Joypad) { player.JoyPadControls(Gamepad); } if (currentcontroller == GameController.Keyboard) { player.eyes.FPSController(mouseState, keyboardState); player.Controls(keyboardState, mouseState); } player.update(); //Third Person Camera is set thirdPerCamera.cPosition = (player.Position + thirdPerOffset); thirdPerCamera.setViewMatrix(thirdPerCamera.cPosition, player.Position, Vector3.Up); thirdPerCamera.FPSController(mouseState, keyboardState); thirdPerCamera.Move(player.Position + thirdPerOffset); thirdPerCamera.update(); if (currentSubGame == subGameState.godSpeed) { Enemy.update(); } counter = ("Number of Balloons:" + icounter); //This is where the Physics is carried out and collision are checked between all objects if (player.shortRange.Active == true) { physics.addBullets(player.shortRange, 0); for (int b = 0; b < redballoon.Length; b++) { if (redballoon[b].Active == true) { physics.addBalloons(redballoon[b], b); if (physics.Bullets[0].Intersects(physics.balloons[b])) { player.shortRange.Destroy(player.Position); redballoon[b].Active = false; Pop.Play(); --icounter; } } } physics.addObject(BlueBalloon); if (physics.Bullets[0].Intersects(physics.Char)) { BlueBalloon.Active = false; player.available = mainPlayer.Weapons.bullet; } physics.addObject(GreenBalloon); if (physics.Bullets[0].Intersects(physics.Char)) { GreenBalloon.Active = false; player.available = mainPlayer.Weapons.LongRange; } } if (player.LongRange.Active == true) { physics.addBullets(player.LongRange, 0); for (int b = 0; b < redballoon.Length; b++) { if (redballoon[b].Active == true) { physics.addBalloons(redballoon[b], b); if (physics.Bullets[0].Intersects(physics.balloons[b])) { player.LongRange.Destroy(player.Position); Pop.Play(); redballoon[b].Active = false; --icounter; } } } physics.addObject(GoldBalloon); if (physics.Bullets[0].Intersects(physics.Char)) { GoldBalloon.Active = false; // only the long range gun can pop the gold balloon currentState = gameState.GameEnd; } } for (int i = 0; i < player.bulletlist.Length; i++) { if (player.bulletlist[i].Active == true) { physics.addBullets(player.bulletlist[i], i); for (int b = 0; b < redballoon.Length; b++) { if (redballoon[b].Active == true) { physics.addBalloons(redballoon[b], b); if (physics.Bullets[i].Intersects(physics.balloons[b])) { player.bulletlist[i].Destroy(player.Position); redballoon[b].Active = false; Pop.Play(); --icounter; } } } physics.addObject(GreenBalloon); if (physics.Bullets[i].Intersects(physics.Char)) { GreenBalloon.Active = false; player.available = mainPlayer.Weapons.LongRange; } } } #endregion base.Update(gameTime); } }
/// <summary> /// LoadContent will be called once per game and is the place to load /// all of your content. /// </summary> protected override void LoadContent() { // Create a new SpriteBatch, which can be used to draw textures. spriteBatch = new SpriteBatch(GraphicsDevice); screencentre = new Vector2(graphics.GraphicsDevice.Viewport.Width / 2, graphics.GraphicsDevice.Viewport.Height / 2); Pop = Content.Load<SoundEffect>(".\\Sound\\BruitSec"); Enemy = new Jets(); for (int i = 0; i < Enemy.jets.Length; i++) { Enemy.jets[i].charModel = Content.Load<Model>(".\\Models\\balloonRed"); } Jet = Content.Load<Model>(".\\Models\\eurofighter fbx"); player = new mainPlayer(cameraPosition, screencentre, aspectRatio); player.charModel = Content.Load<Model>(".\\Models\\RedBalloon"); newcamera = new Camera(campos2, Vector3.Zero, Vector3.Up, screencentre); newcamera.setPerspectiveProjection(45.0f, aspectRatio, 1.0f, 1000.0f); thirdPerCamera = new Camera(player.Position + thirdPerOffset, player.Position,Vector3.Up,screencentre); thirdPerCamera.setPerspectiveProjection(45.0f, aspectRatio , 1.0f, 1000.0f); physics = new Physics(player.bulletlist.Length, redballoon.Length); Font = Content.Load<SpriteFont>(".\\Fonts\\Basic"); Button = Content.Load<Texture2D>(".\\Textures\\Button"); StartButton = new GuiElements((screencentre - new Vector2(Button.Width - 100 ,Button.Height + 120))); Medium = new GuiElements((screencentre - new Vector2(Button.Width - 100, Button.Height - 120))); Hard = new GuiElements((screencentre - new Vector2(Button.Width - 100, Button.Height))); //Textures For Weapon Equip Gui WeaponGUI[0] = Content.Load<Texture2D>(".\\Textures\\KnifeSelected"); WeaponGUI[1] = Content.Load<Texture2D>(".\\Textures\\KnifeUnSelected"); WeaponGUI[2] = Content.Load<Texture2D>(".\\Textures\\GunSlelected"); WeaponGUI[3] = Content.Load<Texture2D>(".\\Textures\\GunUnslelected"); WeaponGUI[4] = Content.Load<Texture2D>(".\\Textures\\goldenBulletsel"); WeaponGUI[5] = Content.Load<Texture2D>(".\\Textures\\goldenBulletUnsel"); WeaponsState[0] = new GuiElements(new Vector2(screencentre.X - (2.0f * (WeaponGUI[0].Width) / 2), 350.0f)); WeaponsState[1] = new GuiElements(new Vector2(screencentre.X - (0.5f * (WeaponGUI[0].Width) / 2), 350.0f)); WeaponsState[2] = new GuiElements ( new Vector2(screencentre.X + (2.0f * (WeaponGUI[0].Width) / 2),350.0f)); crosshair = Content.Load<Texture2D>(".\\Textures\\crosshair"); crosshairpos = new Vector2((screencentre.X - (crosshair.Width / 2)), (screencentre.Y - (crosshair.Height / 2))); XboxController = Content.Load<Texture2D>(".\\Textures\\Contorller"); controllerSelectScreem = Content.Load<Texture2D>(".\\Textures\\ControllerSelection"); KeyBoardController = Content.Load<Texture2D>(".\\Textures\\keyboard"); player.available = mainPlayer.Weapons.shortRange; currentcamera = player.eyes; icounter = 99; for (int i = 0; i < player.bulletlist.Length; i++) { player.bulletlist[i].charModel = Content.Load<Model>(".\\Models\\Bullet"); player.bulletlist[i].charRotation += MathHelper.Pi; } player.shortRange.charModel = Content.Load<Model>(".\\Models\\Short"); player.LongRange.charModel = Content.Load<Model>(".\\Models\\Untitled"); for (int i = 0; i < redballoon.Length; i++) { balloonPos = new Vector3(random.Next(playfield), 0.0f, random.Next(playfield)); redballoon[i] = new Luft(balloonPos); redballoon[i].charModel = Content.Load<Model>(".\\Models\\RedBalloon"); } GreenBalloon = new Character( new Vector3(80.0f,40.0f,120.0f)); GreenBalloon.charModel = Content.Load<Model>(".\\Models\\balloonGreen"); BlueBalloon = new Character( new Vector3(120.0f,0.0f,80.0f)); BlueBalloon.charModel = Content.Load<Model>(".\\Models\\balloonBlue"); GoldBalloon = new Character(new Vector3( 0.0f, 110.0f, 0.0f)); GoldBalloon.charModel = Content.Load<Model>(".\\Models\\balloonGold"); //------------------------------------------------------------- // added to load Model //------------------------------------------------------------- aspectRatio = graphics.GraphicsDevice.Viewport.AspectRatio; // TODO: use this.Content to load your game content here }