Esempio n. 1
0
        public void CreateMessage(string message)
        {
            if (_message == null)
            {
                _message = new YnText("Fonts/Messages", message);
                _message.LoadContent();
                _message.Initialize();
                _message.Position = new Vector2(
                    (float)(_container.X + _container.Width / 2 - (_message.Width / 2)),
                    (float)(_container.Y + 65));
                _message.Color = Color.White;
                Add(_message);

                if (_message.Height + 65 > _container.Height)
                {
                    _container.Scale = new Vector2(_container.Scale.X, _container.Scale.Y + (_message.Height / _message.Height + 65.0f) / 100.0f);
                }

                // Message d'origine
                _baseMessage = _message.Text;
            }
            else
            {
                throw new Exception("[MessageBox] Message already exists");
            }
        }
Esempio n. 2
0
        public override void LoadContent()
        {
            base.LoadContent();

            List <string> descriptionText = new List <string>(7);

            descriptionText.Add(String.Format("Model:              {0}", spaceShipDescription.Model));
            descriptionText.Add(String.Format("Category            {0}", spaceShipDescription.Category));
            descriptionText.Add(String.Format("Weight:             {0}", spaceShipDescription.Weight));
            descriptionText.Add(String.Format("Speed:              {0}", spaceShipDescription.GetSpeed()[0] * spaceShipDescription.GetSpeed()[1]));
            descriptionText.Add(String.Format("Primary weapon:     {0}", spaceShipDescription.PrimaryWeapons));
            descriptionText.Add(String.Format("Secondary weapon:   {0}", spaceShipDescription.SecondaryWeapons));
            descriptionText.Add(String.Format("Ship descrption:\n\n{0}", spaceShipDescription.Description));

            _shipImage.AssetName = spaceShipDescription.AssetName.Split(new char[] { '_' })[0].ToString();
            Add(_shipImage);

            _descriptions = new YnText[descriptionText.Count];
            for (int i = 0; i < descriptionText.Count; i++)
            {
                _descriptions[i]       = new YnText("Fonts/Messages", descriptionText[i], new Vector2(_container.X + 20, (_container.Y + 20) + 25 * i), Color.White);
                _descriptions[i].Scale = new Vector2(0.8f) * SpaceGame.GetScale();
                _descriptions[i].Color = Color.White;
                Add(_descriptions[i]);
            }
        }
        public MessageBoxButton(MessageBoxButtonType type, string text)
        {
            button = new YnEntity("Misc/button");
            Add(button);

            label       = new YnText("Font/kozuka_20", text);
            label.Color = Color.White;
            Add(label);
        }
Esempio n. 4
0
        public ItemLabelText(string label, string content)
        {
            _label       = new YnText("Font/kozuka_30", label);
            _label.Color = Color.White;
            Add(_label);

            _content       = new YnText("Font/kozuka_20", content);
            _content.Color = Color.White;
            Add(_content);
        }
Esempio n. 5
0
 public void CreateTitle(string message)
 {
     _title = new YnText("Fonts/Titles", message);
     _title.LoadContent();
     _title.Initialize();
     _title.Position = new Vector2(
         (float)(_container.X + _container.Width / 2 - (_title.Width / 2)),
         (float)(_container.Y + 10));
     _title.Color = Color.White;
     Add(_title);
 }
Esempio n. 6
0
        protected List <MenuItem> items;                // Elements du menu

        /// <summary>
        /// Représente un écran de menu standard avec un titre et des items
        /// </summary>
        public BaseMenu(string name, string title, int numItems)
            : base(name)
        {
            _background = new YnEntity(Assets.TextureMenuBase);
            Add(_background);

            // 1 - Le titre
            _title       = new YnText(Assets.FontKozuka30, title);
            _title.Color = Color.GhostWhite;
            _title.Scale = new Vector2(1.5f, 1.5f);
            Add(_title);

            items = new List <MenuItem>(numItems);
        }
Esempio n. 7
0
        public GameUI(SpacePlayer [] players)
        {
            int nbPlayer = players.Length;

            minutes      = 0;
            seconds      = 0;
            milliseconds = 0;

            Vector2 scale = SpaceGame.GetScale();

            _guiGroup        = new YnGroup(2);
            _scoreText       = new YnText("Fonts/ScoresUI", "0");
            _scoreText.Color = Color.Wheat;
            Add(_scoreText);

            _timeText       = new YnText("Fonts/ScoresUI", "00:00:000");
            _timeText.Color = Color.Wheat;
            Add(_timeText);

            _playerWeaponBox = new PlayerWeaponBox[nbPlayer];

            for (int i = 0; i < nbPlayer; i++)
            {
                // Si 2 joueurs on a un alignement en bas
                int x = (i * 1100) + 25;
                int y = 700;

                // Sinon les joueurs 1 et 2 sont en haut
                // Et les autres en bas
                if (nbPlayer > 2)
                {
                    // Joueurs 1 et 2
                    if (i < 2)
                    {
                        y = 25;
                    }

                    // Joueurs 3 et 4
                    else
                    {
                        x = ((i - 2) * 1100) + 25;
                        y = 700;
                    }
                }

                _playerWeaponBox[i] = new PlayerWeaponBox(x, y, players[i], ref scale);
                Add(_playerWeaponBox[i]);
            }
        }
Esempio n. 8
0
        public ProgressBar(int x, int y, string labelText)
        {
            borderSize = 1;

            backgroundBar = new YnSprite(new Rectangle(x, y, 130, 20), Color.White);
            Add(backgroundBar);

            foregroundBar = new YnSprite(new Rectangle(x + borderSize, y + borderSize, backgroundBar.Width - (2 * borderSize), backgroundBar.Height - (2 * borderSize)), Color.Blue);
            Add(foregroundBar);

            label       = new YnText("Fonts/HUD", labelText);
            label.Scale = new Vector2(0.80f, 0.80f);
            label.Color = Color.White;
            Add(label);
        }
Esempio n. 9
0
        public MenuItem(string text, int itemPosition, bool selected)
        {
            _itemPosition = itemPosition;
            _selected     = selected;

            _buttonNormal = new YnSprite(Vector2.Zero, "Misc/button");
            Add(_buttonNormal);

            _contentText       = new YnText("Font/kozuka_20", text);
            _contentText.Color = Color.White;
            Add(_contentText);

            MouseOver  += _buttonNormal_MouseOver;
            MouseLeave += _buttonNormal_MouseLeave;
        }
Esempio n. 10
0
        public GameHUD()
        {
            itemsCount       = 0;
            nbItemsCollected = 0;

            itemsCounter       = new YnText("Font/Desiree_20", "{0} / {1} Cristaux");
            itemsCounter.Scale = new Vector2(1.2f);
            itemsCounter.Color = TextColor;
            Add(itemsCounter);

            scoreText       = new YnText("Font/Desiree_20", "0 pt");
            scoreText.Scale = new Vector2(1.4f);
            scoreText.Color = TextColor;
            Add(scoreText);

            scoreCounterEntity = new YnEntity("UI/needle");
            Add(scoreCounterEntity);

            timeText       = new YnText("Font/Desiree_30", "00 : 00");
            timeText.Scale = new Vector2(2.0f);
            timeText.Color = TextColor;
            Add(timeText);

            itemsCounterEntity = new YnEntity("UI/needle");
            Add(itemsCounterEntity);

            timeCounterWheelEntity = new YnEntity("UI/topWheel");
            Add(timeCounterWheelEntity);

            timeCounterNeedleEntity = new YnEntity("UI/needle-watch");
            Add(timeCounterNeedleEntity);

            miniMapLeftBorder = new YnEntity("UI/mapBorderLeft");
            Add(miniMapLeftBorder);

            miniMapBottomBorder = new YnEntity("UI/mapBorderBottom");
            Add(miniMapBottomBorder);

            bottomBar       = new YnEntity(new Rectangle(0, 0, YnG.Width, (int)ScreenHelper.GetScaleY(40)), Color.Black);
            bottomBar.Alpha = 0.4f;
            Add(bottomBar);

            bottomLogo = new YnEntity("UI/bottomWheel");
            Add(bottomLogo);

            highlightTimer            = new YnTimer(1000);
            highlightTimer.Completed += highlightTimer_Completed;
        }
Esempio n. 11
0
        public override void LoadContent()
        {
            base.LoadContent();
            _levelTiles = new YnEntity[GameConfiguration.LevelCount];

            YnText levelText = null;
            int    cursor    = 0;
            float  x         = (int)ScreenHelper.GetScaleX(65);
            float  y         = (int)ScreenHelper.GetScaleX(145);
            float  maxWidth  = (int)(YnG.Width / 4 - ScreenHelper.GetScaleX(90));
            float  offsetX   = ScreenHelper.GetScaleX(40);
            float  offsetY   = ScreenHelper.GetScaleY(35);
            float  paddingX  = 1.25f;

            YnText.DefaultColor = Color.Yellow;

            for (int i = 0; i < GameConfiguration.LevelCount; i++)
            {
                _levelTiles[i] = new YnEntity("Misc/mapPreview");
                _levelTiles[i].LoadContent();

                if (i == 4)
                {
                    y     += (int)(maxWidth + offsetY);
                    cursor = 0;
                }

                x = (cursor++ *maxWidth * paddingX) + offsetX;

                _levelTiles[i].Position = new Vector2(x, y);
                _levelTiles[i].Name     = "level_" + (i + 1);
                _levelTiles[i].Scale    = new Vector2((float)(maxWidth / _levelTiles[i].Width), (float)(maxWidth / _levelTiles[i].Height));
                Add(_levelTiles[i]);

                levelText = new YnText(Assets.FontKozuka30, (i + 1).ToString());
                levelText.LoadContent();
                levelText.Scale    = new Vector2(1.5f);
                levelText.Position = new Vector2(
                    _levelTiles[i].X + _levelTiles[i].ScaledWidth / 2 - levelText.ScaledWidth / 2,
                    _levelTiles[i].Y + _levelTiles[i].ScaledHeight / 2 - levelText.ScaledHeight / 2);
                Add(levelText);
            }
        }
Esempio n. 12
0
        public PopupState(string name)
            : base(name, false)
        {
            int y = YnG.Height / 2 - ((YnG.Height / 4) / 2);

            _background       = new YnSprite(new Rectangle(0, y, YnG.Width, (int)(ScreenHelper.GetScaleY(300))), Color.WhiteSmoke);
            _background.Alpha = 0.9f;
            Add(_background);

            _headerBackground = new YnEntity(new Rectangle((int)_background.X, (int)_background.Y, YnG.Width, (int)ScreenHelper.GetScaleY(50)), Color.DarkGray);
            Add(_headerBackground);

            _title       = new YnText(Assets.FontKozuka30, "Fin de partie");
            _title.Color = Color.White;
            _title.Scale = ScreenHelper.GetScale() * 1.25f;
            Add(_title);

            _content       = new YnText(Assets.FontKozuka20, "Vous avez terminé le niveau, que voulez vous faire ?");
            _content.Color = Color.Black;
            _content.Scale = ScreenHelper.GetScale() * 1.1f;
            Add(_content);

            _waitMessage        = new YnText(Assets.FontKozuka30, "Chargement en cours...");
            _waitMessage.Color  = Color.White;
            _waitMessage.Scale  = ScreenHelper.GetScale() * 1.2f;
            _waitMessage.Active = false;
            Add(_waitMessage);

            _itemActionA               = new MessageBoxButton(MessageBoxButtonType.Cancel, "Menu");
            _itemActionA.Position      = new Vector2(_background.Width / 3, _background.Y + _background.Height - ScreenHelper.GetScaleY(100));
            _itemActionA.MouseClicked += (s, e) => OnActionMenu(new MessageBoxEventArgs(false, true));
            _itemActionA.Scale         = ScreenHelper.GetScale();
            Add(_itemActionA);

            _itemActionB               = new MessageBoxButton(MessageBoxButtonType.Validate, "Suivant");
            _itemActionB.Position      = new Vector2((_background.Width / 3) * 2, _itemActionA.Y);
            _itemActionB.MouseClicked += (s, e) => OnActionMenu(new MessageBoxEventArgs(true, false));
            _itemActionB.Scale         = ScreenHelper.GetScale();
            Add(_itemActionB);

            _enabled = true;
        }
Esempio n. 13
0
        public PlayerWeaponBox(int x, int y, SpacePlayer player, ref Vector2 scale)
        {
            X = x;
            Y = y;

            _playerLabel = new YnText("Fonts/HUD", player.PlayerName, new Vector2(X, Y), Color.Green);
            Add(_playerLabel);

            _healthBar = new ProgressBar(0, 0, "Energy");
            Add(_healthBar);

            _shieldBar = new ProgressBar(0, 0, "Shield");
            Add(_shieldBar);

            _primaryWeaponType = new WeaponItem(0, 0, "Red", Color.Blue, Color.DarkCyan, Assets.LaserBlue, player.PrimaryWeaponType, true);
            Add(_primaryWeaponType);

            _secondaryWeaponType = new WeaponItem(0, 0, "Red", Color.Blue, Color.DarkCyan, Assets.Missile, player.SecondaryWeaponType, true);
            Add(_secondaryWeaponType);
        }
Esempio n. 14
0
        public MenuItem(string text, Rectangle rectangle, int position, bool selected = false)
        {
            _itemPosition = position;
            _selected     = selected;

            SetRectangle(ref rectangle);

            _background       = new YnSprite(Rectangle, BorderColor);
            _background.Alpha = 0.0f;
            Add(_background);

            _foreground = new YnSprite(new Rectangle((int)X, (int)Y, rectangle.Width - BigBorderSize, rectangle.Height - BigBorderSize), BackgroundColor);
            Add(_foreground);

            _contentText       = new YnText("Fonts/Menu", text);
            _contentText.Color = Color.White;
            Add(_contentText);

            _transition = new YnTransitionEffect(350.0f, 250.0f);
        }
Esempio n. 15
0
        public WeaponItem(int x, int y, string texte, Color backgroundColor, Color foregroundColor, string logoAsset, WeaponType id, bool selected = false)
        {
            X = x;
            Y = y;

            Identifier = id;

            _selector         = new YnSprite(new Rectangle((int)X, (int)Y, 130, 20), foregroundColor);
            _selector.Visible = selected;
            _selector.Color  *= 0.35f;
            Add(_selector);

            _label       = new YnText("Fonts/HUD", texte, new Vector2(X, Y), Color.Yellow);
            _label.Scale = new Vector2(0.75f, 0.75f);
            Add(_label);

            _image       = new YnSprite(new Vector2(X, Y), logoAsset);
            _image.Scale = new Vector2(0.4f);
            Add(_image);
        }
Esempio n. 16
0
        public MenuState(string name)
            : base(name, "", 3)
        {
            YnG.ShowMouse = true;

            _checkForNext  = false;
            _checkForHover = false;
            menuItemIndex  = 0;

            menuItemSelector = new YnEntity("UI/menuItemBar");
            Add(menuItemSelector);

            string[] itemNames = new string[5]
            {
                MazeLang.Text.Menus.New,
                MazeLang.Text.Menus.Choose,
                MazeLang.Text.Menus.Options,
                MazeLang.Text.Menus.Credits,
                MazeLang.Text.Menus.Exit
            };

            menuItems = new YnText[5];
            for (int i = 0, l = itemNames.Length; i < l; i++)
            {
                menuItems[i]               = new YnText("Font/kozuka_30", itemNames[i]);
                menuItems[i].Color         = Color.White;
                menuItems[i].Name          = "mi_" + i;
                menuItems[i].MouseClicked += MenuState_MouseClicked;
                menuItems[i].MouseOver    += MenuState_MouseOver;

                if (i > 2)
                {
                    menuItems[i].Scale = new Vector2(0.75f);
                }

                Add(menuItems[i]);
            }

            _background.AssetName = Assets.TextureMenuTitle;
        }
Esempio n. 17
0
        public ScoreState(bool saveScore = false)
            : base("Scores", 1)
        {
            //background = new YnEntity("Backgrounds/options");
            //Add(background);

            int scoreSize = Registry.ScoreManager.GameScores.Count;
            int x         = (int)SpaceGame.GetScaleX(150);

            for (int i = 0; i < scoreSize; i++)
            {
                YnText text = new YnText("Fonts/Menu", String.Format("{0}", _playerScore[i].GetDetailedMenuString(7, 7)), new Vector2(x, 130 + i * 55), Color.White);
                text.Scale = new Vector2(1.2f) * SpaceGame.GetScale();
                Add(text);
            }

            Rectangle rectangle = new Rectangle(
                YnG.Width / 2 - (int)SpaceGame.GetScaleX(MenuItem.SmallItemWidth) / 2,
                YnG.Height - (int)SpaceGame.GetScaleY(75),
                (int)SpaceGame.GetScaleX(MenuItem.SmallItemWidth),
                (int)SpaceGame.GetScaleY(MenuItem.SmallItemHeight));

            MenuItem item = new MenuItem("Menu", rectangle, 0, false);

            item.ItemTextSize  = SpaceGame.GetScale();
            item.MouseClicked += new EventHandler <MouseClickEntityEventArgs>(item_MouseJustClicked);
            item.MouseLeave   += new EventHandler <MouseLeaveEntityEventArgs>(item_MouseLeave);
            item.MouseOver    += new EventHandler <MouseOverEntityEventArgs>(item_MouseOver);
            Add(item);

            items.Add(item);

            if (saveScore)
            {
                _playerScore.Update();
                _playerScore.Record();
            }
        }
Esempio n. 18
0
        protected bool _kinectValidedAction;            // Indique si l'item a été validé après le temps d'activation
#endif
        /// <summary>
        /// Représente un écran de menu standard avec un titre et des items
        /// </summary>
        public BaseMenu(string title, int numItems)
            : base("basemenu", true)
        {
            // 1 - Le titre
            _title       = new YnText("Fonts/Menu", title);
            _title.Color = Color.GhostWhite;
            _title.Scale = new Vector2(1.5f, 1.5f);
            Add(_title);

            string pointerAssetName = Assets.MouseCursor;

#if COMPLETE
            kinect = KinectSensorController.Instance;

            _lastKinectPosition = Vector3.Zero;

            // Aucune action validée pour le moment
            _kinectValidedAction = false;

            // Evenements kinect
            _timerKinectOver            = new YnTimer(KinectTimerDuration, 0);
            _timerKinectOver.Completed += new EventHandler <EventArgs>(_timerKinectOver_Completed);
            _timerKinectOver.ReStarted += new EventHandler <EventArgs>(_timerKinectOver_ReStarted);

            _transitionKinectOver = new YnTransition(KinectTimerDuration);

            if (kinect.IsAvailable)
            {
                pointerAssetName = Assets.KinectCursor;
            }
#endif

            items = new List <MenuItem>(numItems);

            // Le curseur de souris/Kinect
            _handSelector = new YnEntity(pointerAssetName);
        }
Esempio n. 19
0
        public SceneState(string name)
            : base(name, false)
        {
            _vocalSynthetizer = new VocalSynthetizer();

            InitParcours();
            _menuIsShown    = false;
            _visitedScreens = new Dictionary <string, bool>(); // 18 écrans
            _itemsOnScreen  = new List <YnEntity>();

            _narationText       = new YnText("Fonts/GameText", "Dummy");
            _narationText.Color = Color.DarkBlue;
            _narationText.Scale = new Vector2(1.5f) * Yna.Engine.Helpers.ScreenHelper.GetScale().X;

            _narationTimer            = new YnTimer(3500);
            _narationTimer.Completed += (s, e) => _narationText.Active = false;

            _leftSceneHitbox   = new Rectangle(0, _arrowHitboxSize, _arrowHitboxSize, YnG.Height - (97 - 25) - 2 * _arrowHitboxSize);
            _topSceneHitbox    = new Rectangle(_arrowHitboxSize, 0, YnG.Width - 2 * _arrowHitboxSize, _arrowHitboxSize);
            _rightSceneHitbox  = new Rectangle(YnG.Width - _arrowHitboxSize, _arrowHitboxSize, _arrowHitboxSize, YnG.Height - (97 - 25) - 2 * _arrowHitboxSize);
            _bottomSceneHitbox = new Rectangle(_arrowHitboxSize, YnG.Height - (97 - 25) - _arrowHitboxSize, YnG.Width - 2 * _arrowHitboxSize, _arrowHitboxSize);

            _menuHitbox = new Rectangle(YnG.Width / 2 - _buttonWidth / 2, YnG.Height - _buttonHeight, _buttonWidth, _buttonHeight);

            int padding       = 30;
            int imageHalfSize = 30;
            int imageSize     = imageHalfSize * 2;

            _goLeft               = new YnEntity("Textures/icone-fleche-gauche", new Vector2(padding, YnG.Height / 2 - imageHalfSize));
            _goLeft.Visible       = false;
            _goLeft.Name          = "go_left";
            _goLeft.MouseClicked += (s, e) => GoLeft();

            _goUp               = new YnEntity("Textures/icone-fleche-haut", new Vector2(YnG.Width / 2 - imageHalfSize, padding));
            _goUp.Visible       = false;
            _goUp.Name          = "go_up";
            _goUp.MouseClicked += (s, e) => GoUp();

            _goRight               = new YnEntity("Textures/icone-fleche-droite", new Vector2(YnG.Width - padding - imageSize, YnG.Height / 2 - imageHalfSize));
            _goRight.Visible       = false;
            _goRight.Name          = "go_right";
            _goRight.MouseClicked += (s, e) => GoRight();

            _goDown               = new YnEntity("Textures/icone-fleche-bas", new Vector2(YnG.Width / 2 - imageHalfSize, YnG.Height - padding - imageSize - 97 + 25));
            _goDown.Visible       = false;
            _goDown.Name          = "go_down";
            _goDown.MouseClicked += (e, s) => GoDown();

            _menuClosedY    = YnG.Height - 25;
            _menuOpenedY    = YnG.Height - 97;
            _menuBackground = new YnEntity("Textures/liste-inventaire", new Vector2(0, _menuClosedY));

            int iconPadding = 15;
            int x           = iconPadding;
            int y           = YnG.Height - 60;

            _menuIcon               = new YnEntity("Textures/btn-menu", new Vector2(x, y));
            _menuIcon.Visible       = false;
            _menuIcon.MouseClicked += (e, s) =>
            {
                if (!_menuIcon.Visible)
                {
                    return;
                }
            };

            y                        = YnG.Height - 69;
            x                        = YnG.Width - iconPadding - 80;
            _notesIcon               = new YnEntity("Textures/btn-notes", new Vector2(x, y));
            _notesIcon.Visible       = false;
            _notesIcon.MouseClicked += (e, s) =>
            {
                if (!_notesIcon.Visible)
                {
                    return;
                }

                // TODO Afficher les notes
                if (ImlostGame.Debug)
                {
                    Console.WriteLine("Clicked on NOTES");
                }
            };

            _inventory = new List <InventoryItem>();

            _itemImages = new Dictionary <string, YnEntity>();

            foreach (InventoryItem item in ImlostGame.InventoryItems.Values)
            {
                YnEntity img = new YnEntity(item.AssetName);
                img.Visible = false;
                _itemImages.Add(item.Code, img);
            }

            _ambianceManager = new AmbianceManager();
        }
Esempio n. 20
0
 private int GetIndex(YnText item)
 {
     return(int.Parse(item.Name.Split(new char[] { '_' })[1]));
 }