Example #1
0
    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);
    }
Example #3
0
 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;
        }
    }
Example #5
0
        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());
        }
    }
Example #7
0
        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);
            }
        }
Example #8
0
 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();
 }
Example #9
0
    } = 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();
 }
Example #11
0
        /// <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;
            }
        }
Example #12
0
 public void Draw(SpriteBatch spriteBatch)
 {
     playerObject.Draw(spriteBatch);
     PlayerProjectiles.Draw(spriteBatch);
 }
Example #13
0
        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);
        }