Пример #1
0
        public PlayerSpaceInvaders(GameScreen i_GameScreen, string i_PlayerNickname, eSpaceShipType i_SpaceShipType)
            : base(i_GameScreen.Game, i_PlayerNickname)
        {
            m_LoseLifeSound = SoundFactory.CreateSound(this.Game, SoundFactory.eSoundType.LifeDie) as Sound;
            m_Nickname      = i_PlayerNickname;
            m_SpaceShipType = i_SpaceShipType;
            m_ScoreText     = SpritesFactory.CreateSprite(i_GameScreen, SpritesFactory.eSpriteType.SmallText) as Text;
            SpritesFactory.eSpriteType lifeType = SpritesFactory.eSpriteType.LifeBlueSpaceShip;

            switch (m_SpaceShipType)
            {
            case eSpaceShipType.Blue:
                m_SpaceShip           = SpritesFactory.CreateSprite(i_GameScreen, SpritesFactory.eSpriteType.BlueSpaceShip) as SpaceShip;
                m_ScoreText.TintColor = Color.Blue;
                lifeType = SpritesFactory.eSpriteType.LifeBlueSpaceShip;
                break;

            case eSpaceShipType.Green:
                m_SpaceShip           = SpritesFactory.CreateSprite(i_GameScreen, SpritesFactory.eSpriteType.GreenSpaceShip) as SpaceShip;
                m_ScoreText.TintColor = Color.Green;
                lifeType = SpritesFactory.eSpriteType.LifeGreenSpaceShip;
                break;
            }

            for (int i = 0; i < this.Lifes; i++)
            {
                Life life = SpritesFactory.CreateSprite(i_GameScreen, lifeType) as Life;
                life.Initialize();
                this.LifesSprites.Add(life);
            }
        }
Пример #2
0
        private void initOptions(List <string> i_Options)
        {
            float x          = this.Text.Width + this.Text.Position.X + 20;
            Text  optionText = null;

            for (int i = 0; i < 2; i++)
            {
                optionText            = SpritesFactory.CreateSprite(m_GameScreen, m_TextSpriteType) as Text;
                optionText.TextString = i_Options[i];
                optionText.Position   = new Vector2(x, this.Position.Y);
                m_Options.Add(optionText);
                x = optionText.Width + optionText.Position.X + 30;
                if (i_Options[i].Equals(m_SelectedOption))
                {
                    m_SelectedOptionIndex = i;
                }
            }

            m_Separator            = SpritesFactory.CreateSprite(m_GameScreen, m_TextSpriteType) as Text;
            x                      = optionText.Position.X - 15;
            m_Separator.TextString = "/";
            m_Separator.Position   = new Vector2(x, this.Position.Y);
            optionText.Position    = new Vector2(m_Separator.Position.X + m_Separator.Width + 15, this.Position.Y);

            m_Options[0].RightMouseClick += ToggleLeft;
            m_Options[1].RightMouseClick += ToggleRight;
        }
Пример #3
0
        protected virtual Bullet getAndShootBullet(Color i_BulletColor, float i_BulletVelocity)
        {
            Bullet bullet = null;

            bullet = SpritesFactory.CreateSprite(this.GameScreen, SpritesFactory.eSpriteType.Bullet) as Bullet;
            bullet.Initialize();
            bullet.TintColor          = i_BulletColor;
            bullet.GunSerialNumber    = m_SerialNumber;
            bullet.ShootingSpriteType = this.GetType();
            bullet.Velocity           = new Vector2(0, i_BulletVelocity);

            return(bullet);
        }
Пример #4
0
 public override void Initialize()
 {
     m_Mouse                = SpritesFactory.CreateSprite(this, SpritesFactory.eSpriteType.Mouse) as MouseSprite;
     m_TitleText            = SpritesFactory.CreateSprite(this, SpritesFactory.eSpriteType.BigText) as Text;
     m_TitleText.TextString = m_MenuTitle;
     m_TitleText.Position   = new Vector2(0, 20);
     TextServices.CenterTextsOnScreen(this, new List <Text>()
     {
         m_TitleText
     });
     InitMenuItems();
     base.Initialize();
 }
Пример #5
0
        protected override void initTexts()
        {
            Text titleText = SpritesFactory.CreateSprite(this, SpritesFactory.eSpriteType.BigText) as Text;

            titleText.Position   = new Vector2(0, 50);
            titleText.TintColor  = m_TitleColor;
            titleText.TextString = m_Title;
            m_InstructionsText   = TextServices.GetAndCreateTexts(this, m_Instructions, SpritesFactory.eSpriteType.MediumText, titleText.Position.X, titleText.Position.Y + 100f);
            TextServices.CenterTextsOnScreen(this, m_InstructionsText);
            TextServices.CenterTextsOnScreen(this, new List <Text>()
            {
                titleText
            });
        }
Пример #6
0
        protected override void initTexts()
        {
            base.initTexts();
            Vector2 scorePosition = new Vector2(30, m_InstructionsText[m_InstructionsText.Count - 1].Position.Y + (m_InstructionsText[m_InstructionsText.Count - 1].Height * 1.5f));
            Text    playerScoreText;

            foreach (string playerScore in m_PlayersScore)
            {
                playerScoreText            = SpritesFactory.CreateSprite(this, SpritesFactory.eSpriteType.BigText) as Text;
                playerScoreText.TintColor  = Color.Red;
                playerScoreText.Position   = scorePosition;
                playerScoreText.TextString = playerScore;
                scorePosition = new Vector2(scorePosition.X, scorePosition.Y + (playerScoreText.Height * 1.3f));
            }
        }
Пример #7
0
        public PauseScreen(Game i_Game)

            : base(i_Game)
        {
            m_MessageSprite                      = SpritesFactory.CreateSprite(this, SpritesFactory.eSpriteType.MediumText) as Text;
            m_MessageSprite.Position             = new Vector2(180, 230);
            (m_MessageSprite as Text).TextString = "Click R to continue playing";
            TextServices.CenterTextsOnScreen(this, new List <Text>()
            {
                (m_MessageSprite as Text)
            });
            this.IsModal               = true;
            this.IsOverlayed           = true;
            this.UseGradientBackground = true;
            this.BlackTintAlpha        = 0.4f;
        }
Пример #8
0
        public override void Initialize()
        {
            initilizeOnFirstRun();
            SpritesFactory.CreateSprite(this, SpritesFactory.eSpriteType.MotherShip);
            SpritesFactory.CreateSprite(this, SpritesFactory.eSpriteType.SpaceBackground);
            EnemiesMatrix enemiesMatrix = new EnemiesMatrix(this);
            BarrierGroup  barrierGroup  = new BarrierGroup(this);

            m_MultiPlayerConfiguration = SpaceInvadersServices.GetMultiPlayerConfiguration(this.Game);
            m_MultiPlayerConfiguration.CreatePlayers(this);
            m_WonLevelSound = SoundFactory.CreateSound(this, SoundFactory.eSoundType.LevelWin);
            m_GameOverSound = SoundFactory.CreateSound(this, SoundFactory.eSoundType.GameOver);
            this.Add(enemiesMatrix);
            this.Add(barrierGroup);
            base.Initialize();
            SpaceInvadersServices.ChangeBarriersGroupVerticalPosition(this, barrierGroup);
        }
Пример #9
0
        public GameMenuItem(string i_ItemName, GameScreen i_GameScreen, Color i_Color, eFontSize i_FontSize = eFontSize.Big, params MethodKey[] i_Methods)
            : base(i_ItemName, i_Methods)
        {
            switch (i_FontSize)
            {
            case eFontSize.Medium:
                m_TextSpriteType = SpritesFactory.eSpriteType.MediumText;
                break;

            case eFontSize.Small:
                m_TextSpriteType = SpritesFactory.eSpriteType.SmallText;
                break;
            }

            m_Text                  = SpritesFactory.CreateSprite(i_GameScreen, m_TextSpriteType) as Text;
            m_Text.TextString       = i_ItemName;
            m_Text.TintColor        = r_OriginalColor = i_Color;
            m_GameScreen            = i_GameScreen;
            m_MoveBetweenItemsSound = SoundFactory.CreateSound(this.m_GameScreen, SoundFactory.eSoundType.MenuMove);
        }
Пример #10
0
        protected override void initTexts()
        {
            base.initTexts();
            Text headText = SpritesFactory.CreateSprite(this, SpritesFactory.eSpriteType.BigText) as Text;

            headText.Position   = new Vector2(250, 200);
            headText.TintColor  = Color.Lime;
            headText.TextString = "Starting level " + m_CurrentLevel;
            TextServices.CenterTextsOnScreen(this, new List <Text>()
            {
                headText
            });
            m_CountingText            = SpritesFactory.CreateSprite(this, SpritesFactory.eSpriteType.BigText) as Text;
            m_CountingText.Position   = new Vector2(350, 300);
            m_CountingText.TintColor  = Color.White;
            m_CountingText.TextString = m_CurrentCountingNum.ToString();
            TextServices.CenterTextsOnScreen(this, new List <Text>()
            {
                m_CountingText
            });
        }
Пример #11
0
        private void createBarrierGroup(int i_NumOfBarriers)
        {
            Barrier barrier    = null;
            Vector2 position   = new Vector2(0, 0);
            float   groupWidth = 0;

            m_Barriers.Clear();
            for (int i = 0; i < i_NumOfBarriers; i++)
            {
                barrier = SpritesFactory.CreateSprite(m_GameScreen, SpritesFactory.eSpriteType.Barrier) as Barrier;
                if (m_FirstRun)
                {
                    m_OriginalPixels = barrier.Pixels.Clone() as Color[];
                    m_FirstRun       = false;
                }
                else if (i == 0)
                {
                    barrier.Pixels = m_OriginalPixels.Clone() as Color[];
                }

                barrier.Position          = position;
                position                  = new Vector2(position.X + (barrier.Width * 2), position.Y);
                barrier.TouchScreenLimit += changeMovingDirection;
                if (i > 0)
                {
                    barrier.Texture = new Microsoft.Xna.Framework.Graphics.Texture2D(barrier.GraphicsDevice, (int)barrier.Width, (int)barrier.Height);
                    barrier.Pixels  = m_OriginalPixels.Clone() as Color[];
                }

                m_Barriers.Add(barrier);
            }

            groupWidth = barrier.Position.X + barrier.Width;
            float x = (float)this.Game.GraphicsDevice.Viewport.Width / 2;

            x -= groupWidth / 2;
            centerGroupOnScreen(new Vector2(x, 0));
        }
Пример #12
0
 public override void Initialize()
 {
     SpritesFactory.CreateSprite(this, SpritesFactory.eSpriteType.SpaceBackground);
     base.Initialize();
 }
Пример #13
0
 public MouseSprite(GameScreen i_GameScreen, string i_AssetName)
     : base(i_AssetName, i_GameScreen)
 {
     m_Tooltip = SpritesFactory.CreateSprite(this.GameScreen, SpritesFactory.eSpriteType.SmallText) as Text;
 }
Пример #14
0
        private void addEnemiesColumn(int i_NumOfPinkEnemies, int i_NumOfLightBlueEnemies, int i_NumOfYellowEnemies)
        {
            Enemy enemy          = null;
            Enemy enemyLastAdded = null;

            SpritesFactory.eSpriteType enemyTypeToCreate = SpritesFactory.eSpriteType.EnemyPink;
            Vector2      position = new Vector2(0, 0);
            int          sumOfEnemysInOneColumn = i_NumOfPinkEnemies + i_NumOfLightBlueEnemies + i_NumOfYellowEnemies;
            List <Enemy> currentEnemiesOnMatrix = GetEnemysAsList();

            if (currentEnemiesOnMatrix.Count > 0)
            {
                Enemy enemyFromLastLine = currentEnemiesOnMatrix.Last();
                position    = enemyFromLastLine.Position;
                position.X += (float)((enemyFromLastLine.Width * 0.6) + enemyFromLastLine.Width);
            }

            for (int i = 0; i < sumOfEnemysInOneColumn; i++)
            {
                if (i > r_EnemiesMatrix.Count - 1)
                {
                    this.r_EnemiesMatrix.Add(new List <Enemy>());
                }

                enemyTypeToCreate = (i_NumOfPinkEnemies > 0) ? SpritesFactory.eSpriteType.EnemyPink : (i_NumOfLightBlueEnemies > 0 ? SpritesFactory.eSpriteType.EnemyLightBlue : SpritesFactory.eSpriteType.EnemyYellow);
                enemy             = SpritesFactory.CreateSprite(m_GameScreen, enemyTypeToCreate) as Enemy;
                switch (enemyTypeToCreate)
                {
                case SpritesFactory.eSpriteType.EnemyPink: i_NumOfPinkEnemies--;
                    position.Y   = 3 * enemy.Width;
                    enemy.Points = m_PinkPoints;
                    break;

                case SpritesFactory.eSpriteType.EnemyLightBlue:
                    i_NumOfLightBlueEnemies--;
                    enemy.Points = m_LightBluePoints;

                    break;

                case SpritesFactory.eSpriteType.EnemyYellow:
                    i_NumOfYellowEnemies--;
                    enemy.Points = m_YellowEnemyPoints;

                    break;
                }

                if (enemyLastAdded != null)
                {
                    if (enemy.TextureStartIndex == enemyLastAdded.TextureStartIndex && enemy.TextureEndIndex == enemyLastAdded.TextureEndIndex)
                    {
                        enemy.ChangeEnemyShape();
                    }
                }

                enemy.Position = new Vector2(position.X, position.Y);
                enemy.TouchedEndOfTheScreen += enemy_TouchedEndOfTheScreen;
                r_EnemiesMatrix[i].Add(enemy);
                position       = new Vector2(position.X, (float)(position.Y + ((enemy.Height * 0.6) + enemy.Width)));
                enemyLastAdded = enemy;
            }
        }