Exemplo n.º 1
0
        private void ShootBullet()
        {
            Vector2 deltaVector = new Vector2(this.SpriteRectangle.Width / 2 + 10, this.SpriteRectangle.Height / 2- 15);
                bool aCreateNew = true;
                foreach (Bullet aBullet in bulletSprites)
                {
                    if (aBullet.Visible == false)
                    {
                        aCreateNew = false;
                        aBullet.Fire(this.SpritePosition+deltaVector,BULLET_SPEED, new Vector2(0, -1));
                        break;
                    }
                }

                if (aCreateNew == true)
                {
                    Bullet aBullet  = new Bullet();
                    aBullet.Load(mContentManager,BULLET_TYPE);
                    aBullet.Fire(this.SpritePosition+deltaVector,BULLET_SPEED, new Vector2(0, -1));
                    bulletSprites.Add(aBullet);
                }
        }
Exemplo n.º 2
0
        public override void Update(GameTime gameTime)
        {
            int x = RandomGenerator.getNextRandomNumber(0, 2000);
            int condition = x % 16;//condition variable  to fire immune green bullets

            if (this.alienType!=0)
            {
                //code to fire immune green bullets if player opts to play without
                //horizontal movement
                float change;
                if (curPlayerTime == 0)
                {
                    prevPlayerX = SpaceGame.playerX;
                }
                curPlayerTime += gameTime.ElapsedRealTime.Milliseconds;

                if (curPlayerTime > 1000)
                {
                    change = prevPlayerX - SpaceGame.playerX;
                    if (change < 0)
                        change *= -1;
                    if (change < 50)
                        fireBullet = true;
                    else
                        fireBullet = false;
                    curPlayerTime = 0;

                }
                if (fireBullet == true)
                    condition = x % 2;
            }
            else
            {
                condition = 1;
            }
            //if condition == 0 green bullet is fired

                if (condition == 0 && bulletSprite.Visible == false && alienType>=1)
                {

                        bulletSprite = new Bullet();
                        bulletSprite.Load(mContentManager, IMMUNE_BULLET);

                }

            else if (bulletSprite.Visible == false)
            {
                bulletSprite = new Bullet();
                bulletSprite.Load(mContentManager, NORMAL_BULLET);
            }

            UpdateBullet(gameTime);
            if (state == AlienState.EXPLODED)
            {
                if (currentTime == 0)
                    SoundPlayer.soundBank.PlayCue("explosion1");

                currentTime += gameTime.ElapsedGameTime.Milliseconds;
                explosionSprite.Update(gameTime);

                if (currentTime > 1000)
                {

                    state = AlienState.DIE;

                    currentTime = 0;

                }
            }
            base.Update(gameTime);
        }