public void OnTriggerEnter2D(Collider2D col) { if (enemyAiScript.redShield) { if (col.gameObject.CompareTag("Red")) { } else if (col.gameObject.CompareTag("Blue")) { projectileScript = col.gameObject.GetComponent <PlayerProjectiles>(); enemyAiScript.EnemyTakeDamage(projectileScript.damage); } } else if (enemyAiScript.blueShield) { if (col.gameObject.CompareTag("Blue")) { } else if (col.gameObject.CompareTag("Red")) { projectileScript = col.gameObject.GetComponent <PlayerProjectiles>(); enemyAiScript.EnemyTakeDamage(projectileScript.damage); } } }
/// <summary> /// Gets the corresponding projectile prefab. /// </summary> /// <param name="projType">Projectile Type</param> /// <returns>Projectile GameObject</returns> public static GameObject GetPrefab(PlayerProjectiles projType) { projectileType = projType; if (projectileName == "") { projectileName = null; } // if the projectile name and projType is empty, call soda bomb as default if (projType == PlayerProjectiles.Undefined && projectileName == null) { projectileName = "Soda Bomb"; Debug.Log("projectile name is empty! Redirecting to Soda Bomb"); //retain data if projectileName exists } //if not null, get the projectile name (string) in order to get the prefab from Assets else if (projType != PlayerProjectiles.Undefined) { projectileName = EnumToString(projType); } Debug.Log($"projectile type @ get prefab: \"{projectileName}\""); //loads the prefab with the directory return(Resources.Load <GameObject>(projectilePath + projectileName) as GameObject); }
public void LoadContent(ContentManager content) { PlayerProjectiles.LoadContent(content); mShipdata = content.Load <ShipData>("PlayerShip"); image = content.Load <Texture2D>(mShipdata.spriteName); playerObject = new AnimatedObject(image, image.Width, mShipdata.center, false, 0.1f, new Vector2(100, 100)); Max_Speed = mShipdata.maxSpeed; Max_Speed_Squared = Max_Speed * Max_Speed; }
/// <summary> /// Updates the projectile name. /// </summary> /// <param name="projType">New projectile type</param> public static void SetProjectileName(PlayerProjectiles projType) { Debug.Log($"setting projectile name: {projType}"); string projTypeString = EnumToString(projType); if (projTypeString != null) { projectileName = projTypeString; } }
public void ClearGame()//Removes all Gameobjects from the Gamedisplay and resets the Gamevalues { Player.HealthPoints = 3; score = 0; levelcounter = 1; PlayerProjectiles.Clear(); EnemyProjectiles.Clear(); Invaders.Clear(); Ufos.Clear(); Walls.Clear(); GameDisplay.Children.Clear(); }
/// <summary> /// Converts enum into string /// </summary> private static string EnumToString(PlayerProjectiles p) { switch (p) { case PlayerProjectiles.SodaBomb: return("Soda Bomb"); case PlayerProjectiles.Undefined: return(null); default: return(p.ToString()); } }
private void PlayerShoot()//let the player shoot player projectiles { PlayerProjectile pp; if (PlayerReloadTimer <= 10) { PlayerReloadTimer++; } if (Keyboard.IsKeyDown(Key.Space) && PlayerReloadTimer >= 10)//if space is pressed the player shoots { PlayerReloadTimer -= 10; pp = new PlayerProjectile(GameDisplay, Player, 15);//new object of the type PlayerProjectile PlayerProjectiles.Add(pp); } }
public void CleanTemporaryGameLists()//gameobject lists are cleaned up { GameDisplay.Children.Clear(); //lists are updated EnemyProjectiles = EnemyProjectiles.Except(TemporaryEnemyProjectiles).ToList(); PlayerProjectiles = PlayerProjectiles.Except(TemporaryPlayerProjectiles).ToList(); Ufos = Ufos.Except(TemporaryUfos).ToList(); Walls = Walls.Except(TemporaryWalls).ToList(); Invaders = Invaders.Except(TemporaryInvaders).ToList(); //temporary lists are cleared TemporaryWalls.Clear(); TemporaryPlayerProjectiles.Clear(); TemporaryInvaders.Clear(); TemporaryEnemyProjectiles.Clear(); TemporaryUfos.Clear(); }
} = 10; //how long the effect last public void Apply(GameObject player) { playerControl = player.GetComponent <PlayerControl>(); playerAttack = player.GetComponent <PlayerAttack>(); if (playerAttack.chosenProjectile == PlayerProjectiles.Undefined) { oldProjectile = PlayerProjectiles.SodaBomb; } else { oldProjectile = playerAttack.chosenProjectile; } Debug.Log($"Old Projectile: {oldProjectile}"); playerAttack.ChangeProjectile(PlayerProjectiles.Shotgun); }
public void ChangeProjectile(PlayerProjectiles newProjectile) { chosenProjectile = newProjectile; projectilePrefab = ProjectileProcessor.GetPrefab(chosenProjectile); projectileName = ProjectileProcessor.GetProjectileName(); }
/// <summary> /// LoadContent will be called once per game and is the place to load /// all of your content. /// </summary> protected override void LoadContent() { spriteBatch = new SpriteBatch(GraphicsDevice); scoreFont = Content.Load <SpriteFont>("Sprites\\Fonts\\ScoreFont"); endScreenFont = Content.Load <SpriteFont>("Sprites\\Fonts\\EndScreenFont"); switch (CurrentGameState) { case GameState.MainMenu: _mainStartButton = new Button(Content.Load <Texture2D>("Sprites\\Buttons\\ButtonPlay"), Content.Load <Texture2D>("Sprites\\Buttons\\ButtonPlayHover"), new Vector2(200, 100)); _mainControlsButton = new Button(Content.Load <Texture2D>("Sprites\\Buttons\\ButtonControls"), Content.Load <Texture2D>("Sprites\\Buttons\\ButtonControlsHover"), new Vector2(200, 300)); break; case GameState.Controls: _controlsBackButton = new Button(Content.Load <Texture2D>("Sprites\\Buttons\\ButtonBack"), Content.Load <Texture2D>("Sprites\\Buttons\\ButtonBackHover"), new Vector2(200, 300)); _controlsLayout = new Image(Content.Load <Texture2D>("Sprites\\Extra\\ControlsLayout"), new Vector2(150, 50)); break; case GameState.Level1: LoadTextures(); #region Level1 inladen Level1Array = new byte[, ] { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11 }, { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11 }, { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11 }, { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 5, 6, 0, 0, 0, 4, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8 }, { 1, 0, 0, 4, 6, 0, 0, 0, 0, 4, 6, 0, 0, 0, 0, 0, 4, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 1, 6, 0, 0, 0, 0, 0, 4, 6, 0, 0, 0, 0, 0, 4, 6, 0, 0, 0, 0, 4, 5, 5, 5, 6, 0, 0, 0, 0, 0, 4, 6, 0, 0, 0, 0, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 }, { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 6, 0, 0, 0, 0, 0, 0, 0, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11 }, { 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 4, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11 }, { 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11 }, }; _level1 = new Level(Level1Array); AddTexturesToLevel(_level1); _level1.CreateWorld(); //Player projectile object aanmaken en texture geven myProjectiles = new PlayerProjectiles { Texture = _playerProjectileTexture }; _player = new Player(_playerTexture, new Vector2(90, 280)); //Enemy objects aanmaken _enemyMinotaurList = new List <Enemy> { new Enemy(_enemyMinotaurTexture, new Vector2(100, 480)), new Enemy(_enemyMinotaurTexture, new Vector2(230, 480)), new Enemy(_enemyMinotaurTexture, new Vector2(580, 480)), new Enemy(_enemyMinotaurTexture, new Vector2(730, 480)), new Enemy(_enemyMinotaurTexture, new Vector2(850, 480)), new Enemy(_enemyMinotaurTexture, new Vector2(950, 480)) }; myCollisions = new Collisions(); //Ophalen welke tiles worden gebruikt en in lijst zetten foreach (var item in _level1.TileArray) { if (item != null) { myCollisions.AddCollisionsObject(item); } } #endregion //Camera start positie campos = new Vector2(-150, 90); break; case GameState.Level2: LoadTextures(); #region Level2 inladen Level2Array = new byte[, ] { { 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10 }, { 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10 }, { 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10 }, { 12, 4, 5, 6, 0, 0, 0, 0, 4, 6, 10 }, { 12, 4, 5, 5, 6, 0, 0, 4, 5, 6, 10 }, { 12, 0, 0, 0, 0, 2, 2, 0, 0, 0, 10 }, { 12, 0, 0, 0, 1, 0, 0, 6, 0, 0, 10 }, { 12, 0, 0, 1, 0, 0, 0, 0, 0, 4, 10 }, { 12, 0, 4, 0, 0, 0, 0, 4, 6, 0, 10 }, { 12, 1, 0, 0, 0, 1, 0, 0, 0, 4, 10 }, { 12, 1, 1, 1, 1, 11, 6, 0, 4, 0, 10 }, { 12, 0, 0, 0, 0, 0, 0, 4, 6, 0, 10 }, { 12, 0, 0, 0, 0, 4, 6, 0, 0, 0, 10 }, { 12, 0, 0, 0, 4, 6, 0, 0, 0, 0, 10 }, { 12, 0, 4, 5, 6, 0, 0, 0, 0, 0, 10 }, { 12, 1, 0, 0, 0, 0, 1, 6, 0, 0, 10 }, { 12, 2, 2, 2, 2, 2, 9, 0, 0, 1, 10 }, { 12, 11, 11, 11, 11, 12, 0, 0, 1, 11, 10 }, { 12, 8, 8, 8, 8, 8, 6, 0, 0, 0, 10 }, { 12, 0, 0, 0, 0, 0, 0, 1, 0, 0, 10 }, { 13, 15, 2, 2, 2, 2, 2, 2, 2, 16, 14 } }; //Level 2 aanmaken en textures inladen _level2 = new Level(Level2Array); AddTexturesToLevel(_level2); _level2.CreateWorld(); //Player projectile object aanmaken en texture geven myProjectiles = new PlayerProjectiles { Texture = _playerProjectileTexture }; //Player object aanmaken _player = new Player(_playerTexture, new Vector2(90, 1250)); //Enemy objects aanmaken _enemyMinotaurList = new List <Enemy> { new Enemy(_enemyMinotaurTexture, new Vector2(80, 1000)), new Enemy(_enemyMinotaurTexture, new Vector2(80, 600)) }; //Collision object aanmaken myCollisions = new Collisions(); //Ophalen welke tiles worden gebruikt en in lijst zetten foreach (var item in _level2.TileArray) { if (item != null) { myCollisions.AddCollisionsObject(item); } } #endregion //Camera start positie campos = new Vector2(-50, 1050); break; case GameState.EndScreen: _victoryAchieved = new Image(Content.Load <Texture2D>("Sprites\\Extra\\VictoryAchieved"), new Vector2(-80, 150)); break; } }
public void Draw(SpriteBatch spriteBatch) { playerObject.Draw(spriteBatch); PlayerProjectiles.Draw(spriteBatch); }
public void Update(GameTime gameTime) { timeSinceLastBShot += (float)gameTime.ElapsedGameTime.TotalSeconds; timeSinceLastSShot += (float)gameTime.ElapsedGameTime.TotalSeconds; timeSinceLastMShot += (float)gameTime.ElapsedGameTime.TotalSeconds; timeSinceLastRShot += (float)gameTime.ElapsedGameTime.TotalSeconds; KeyboardState keyboard = Keyboard.GetState(); GamePadState controller = GamePad.GetState(PlayerIndex.One); if (keyboard.IsKeyDown(Keys.Left) || controller.IsButtonDown(Buttons.DPadLeft)) { playerObject.Position += new Vector2(-5, 0); } if (keyboard.IsKeyDown(Keys.Right) || controller.IsButtonDown(Buttons.DPadRight)) { playerObject.Position += new Vector2(5, 0); } if (keyboard.IsKeyDown(Keys.Up) || controller.IsButtonDown(Buttons.DPadUp)) { playerObject.Position += new Vector2(0, -5); } if (keyboard.IsKeyDown(Keys.Down) || controller.IsButtonDown(Buttons.DPadDown)) { playerObject.Position += new Vector2(0, 5); } if (keyboard.IsKeyDown(Keys.D1)) { g = gunType.D1; } if (keyboard.IsKeyDown(Keys.D2)) { g = gunType.D2; } if (keyboard.IsKeyDown(Keys.D3)) { g = gunType.D3; } if (keyboard.IsKeyDown(Keys.D4)) { g = gunType.D4; } if (timeSinceLastBShot > shotCooldownB) { if ((keyboard.IsKeyDown(Keys.Space) && g == gunType.D1) || controller.IsButtonDown(Buttons.A)) { shotCooldownB = PlayerProjectiles.pBulletData.shotCooldown; PlayerProjectiles.fireBullet(playerObject.Position + new Vector2(30, 15), rotate(mShipdata.facing, playerObject.Rotation) * PlayerProjectiles.pBulletData.bulletSpeed); timeSinceLastBShot = 0.0f; } } if (timeSinceLastSShot > shotCooldownS) { if ((keyboard.IsKeyDown(Keys.Space) && g == gunType.D2) || controller.IsButtonDown(Buttons.B)) { shotCooldownS = PlayerProjectiles.pSonarData.shotCooldown; PlayerProjectiles.fireSonar(playerObject.Position + new Vector2(30, 15), rotate(mShipdata.facing, playerObject.Rotation) * PlayerProjectiles.pSonarData.bulletSpeed); timeSinceLastSShot = 0.0f; } } if (timeSinceLastMShot > shotCooldownM) { if ((keyboard.IsKeyDown(Keys.Space) && g == gunType.D3) || controller.IsButtonDown(Buttons.X)) { shotCooldownM = PlayerProjectiles.pMissileData.shotCooldown; PlayerProjectiles.fireMissile(playerObject.Position + new Vector2(30, 15), rotate(mShipdata.facing, playerObject.Rotation) * PlayerProjectiles.pMissileData.bulletSpeed); timeSinceLastMShot = 0.0f; } } if (timeSinceLastRShot > shotCooldownR) { if ((keyboard.IsKeyDown(Keys.Space) && g == gunType.D4) || controller.IsButtonDown(Buttons.Y)) { shotCooldownR = PlayerProjectiles.pRocketData.shotCooldown; PlayerProjectiles.fireRocket(playerObject.Position + new Vector2(30, 15), rotate(mShipdata.facing, playerObject.Rotation) * PlayerProjectiles.pRocketData.bulletSpeed); timeSinceLastRShot = 0.0f; } } PlayerProjectiles.Update(gameTime); }