/// <summary>
        /// Charge un sprite d'interface
        /// </summary>
        /// <param name="sprite">Sprite</param>
        /// <param name="url">Url de la ressource system</param>
        /// <param name="x">X</param>
        /// <param name="y">Y</param>
        private static VO_Sprite LoadGUISprite(VO_Sprite oldSprite, string url, int x, int y)
        {
            Guid id = Guid.NewGuid();

            if (oldSprite != null)
            {
                DeletePermanentSprite(oldSprite.Id);
            }
            CreatePermanentSprite(id, url, new Vector2(0, 0), new Rectangle(x, y, 16, 16));
            return(GetPermanentSprite(id));
        }
        /// <summary>
        /// Créer un sprite
        /// </summary>
        /// <param name="id">Id du sprite</param>
        /// <param name="url">Url de l'image</param>
        /// <param name="location">Location</param>
        /// <param name="color">Couleur</param>
        public static void CreateScreenSprite(Guid id, string url, Vector2 location, Rectangle source, VO_ColorTransformation color)
        {
            //Dictionnaire d'image
            if (_ScreenSprites == null)
            {
                _ScreenSprites = new Dictionary <Guid, VO_Sprite>();
            }

            //Pas d'image envoyée
            if (id == new Guid())
            {
                return;
            }

            //Ajout de l'image
            if (!_ScreenSprites.ContainsKey(id))
            {
                try
                {
                    VO_Sprite newSprite = new VO_Sprite(id);
                    newSprite.ResourceUrl = url;
                    newSprite.Scale       = new Vector2(1.0f, 1.0f);
                    newSprite.Image       = ImageManager.CurrentStage.GetScreenImage(url);
                    newSprite.Position    = new Vector2(location.X, location.Y);
                    newSprite.Source      = source;
                    _ScreenSprites.Add(id, newSprite);
                    LogTools.WriteDebug(string.Format(Logs.MANAGER_SPRITE_CREATED, id, Logs.MANAGER_SCREEN));
                }
                catch (Exception e)
                {
                    LogTools.WriteInfo(string.Format(Logs.MANAGER_SPRITE_NOT_FOUND, url));
                    LogTools.WriteDebug(e.Message);
                    _ScreenSprites.Add(id, null);
                }
            }
        }
Beispiel #3
0
 public virtual void Draw(VO_Sprite sprite)
 {
     _SpriteBatch.Draw(sprite.Image, sprite.Position, sprite.Source, Color.White, 0f, Vector2.Zero, sprite.Scale, SpriteEffects.None, 0f);
 }
Beispiel #4
0
        public Interface(SpriteBatch spriteBatch, Game game)
        {
            _SpriteBatch = spriteBatch;

            //Inventaire
            Inventory      = new Inventory(spriteBatch, game);
            LifeBarVisible = true;

            //Background
            //Charger console background
            RenderTarget2D texture = new RenderTarget2D(game.GraphicsDevice, game.GraphicsDevice.PresentationParameters.BackBufferWidth, game.GraphicsDevice.PresentationParameters.BackBufferHeight);

            game.GraphicsDevice.SetRenderTarget(texture);
            game.GraphicsDevice.Clear(Color.Black);

            game.GraphicsDevice.SetRenderTarget(null);

            _EscapeMenuBackground = (Texture2D)texture;

            //Escape Menu
            List <string> menu = new List <string>();

            if (GameCore.Instance.Game.Menu.ActivateSaveMenu)
            {
                menu.Add(GameCore.Instance.Game.Terminology.SaveGame);
                SaveActive = true;
            }
            if (GameCore.Instance.Game.Menu.ActivateLoadingMenu)
            {
                menu.Add(GameCore.Instance.Game.Terminology.LoadGame);
                LoadActive = true;
            }
            if (GameCore.Instance.Game.Menu.ActivateMainMenu)
            {
                menu.Add(GameCore.Instance.Game.Terminology.ReturnTitle);
            }
            //menu.Add(GameCore.Instance.Game.Terminology.Options);
            menu.Add(GameCore.Instance.Game.Terminology.LeaveGame);
            _EscapeMenu                       = new VO_SelectableMenu(spriteBatch, game, menu, 10);
            _EscapeMenu.FontSize              = 20;
            _EscapeMenu.Position              = new Vector2(GameCore.Instance.Game.Project.Resolution.Width / 2 - _EscapeMenu.Width / 2, GameCore.Instance.Game.Project.Resolution.Height / 2 - _EscapeMenu.Height / 2);
            _EscapeMenu.OnClick              += new VO_SelectableMenu.OnClickEventHandler(_EscapeMenu_OnClick);
            _EscapeMenu.SelectedValueChanged += new VO_SelectableMenu.SelectedValueChangedEventHandler(Menu_SelectedValueChanged);

            //Save/Load menu
            if (GameCore.Instance.Game.Menu.ActivateSaveMenu || GameCore.Instance.Game.Menu.ActivateLoadingMenu)
            {
                List <string> saveMenu = new List <string>();
                for (int i = 1; i <= 9; i++)
                {
                    saveMenu.Add(GameCore.Instance.Game.Terminology.SaveState + i);
                }
                _GameStatesMenu                       = new VO_SelectableMenu(spriteBatch, game, saveMenu, 10);
                _GameStatesMenu.FontSize              = 16;
                _GameStatesMenu.Position              = new Vector2(GameCore.Instance.Game.Project.Resolution.Width / 2 - _GameStatesMenu.Width / 2, GameCore.Instance.Game.Project.Resolution.Height / 2 - _GameStatesMenu.Height / 2);
                _GameStatesMenu.OnClick              += new VO_SelectableMenu.OnClickEventHandler(_GameStatesMenu_OnClick);
                _GameStatesMenu.SelectedValueChanged += new VO_SelectableMenu.SelectedValueChangedEventHandler(Menu_SelectedValueChanged);
            }

            //LifeBar
            if (!string.IsNullOrEmpty(GameCore.Instance.Game.Project.LifeBarBackground) && File.Exists(PathTools.GetProjectPath(Enums.ProjectPath.LifeBar) + GameCore.Instance.Game.Project.LifeBarBackground))
            {
                _LifeBarBackground          = new VO_Sprite(ImageManager.GetPermanentImage(PathTools.GetProjectPath(Enums.ProjectPath.LifeBar) + GameCore.Instance.Game.Project.LifeBarBackground));
                _LifeBarBackground.Position = new Vector2(GameCore.Instance.Game.Project.LifeBarCoords.X, GameCore.Instance.Game.Project.LifeBarCoords.Y);
            }
            if (!string.IsNullOrEmpty(GameCore.Instance.Game.Project.LifeBarResource) && File.Exists(PathTools.GetProjectPath(Enums.ProjectPath.LifeBar) + GameCore.Instance.Game.Project.LifeBarResource))
            {
                _LifeBar          = new VO_Sprite(ImageManager.GetPermanentImage(PathTools.GetProjectPath(Enums.ProjectPath.LifeBar) + GameCore.Instance.Game.Project.LifeBarResource));
                _LifeBar.Position = new Vector2(GameCore.Instance.Game.Project.LifeBarCoords.X, GameCore.Instance.Game.Project.LifeBarCoords.Y);
                _LifeBarFull      = (int)_LifeBar.Width;
            }
        }