コード例 #1
0
        /// <summary>
        /// Rafraichi un calque
        /// </summary>
        /// <param name="layer"></param>
        /// <param name="main"></param>
        private void RefreshLayer(VO_Layer layer, bool main, bool moveOrAnimation)
        {
            //Decors
            foreach (VO_StageDecor item in layer.ListDecors)
            {
                Draw(SpriteManager.GetScreenSprite(item.Id));
            }

            //Animations
            foreach (VO_StageAnimation item in layer.ListAnimations)
            {
                VO_AnimatedSprite anim = _Service.DrawAnimated(item);
                if (anim != null)
                {
                    Draw(anim, _Service.GetRatioFromMatrix(new Point(item.Location.X, item.Location.Y), _ProjectData.Resolution.MatrixPrecision), moveOrAnimation);
                }
                if (moveOrAnimation && anim.CurrentSpriteIndex == 0 && anim.ReadyToExecScript)
                {
                    _Service.ExecuteAnimationScript(item, Enums.TriggerExecutionType.BeginingAnimation);
                    anim.ReadyToExecScript = false;
                }
                else if (moveOrAnimation && anim.CurrentSpriteIndex == anim.SpritesCount - 1 && anim.ReadyToExecScript)
                {
                    _Service.ExecuteAnimationScript(item, Enums.TriggerExecutionType.EndingAnimation);
                    anim.ReadyToExecScript = false;
                }
            }
        }
コード例 #2
0
        /// <summary>
        /// Charger actions
        /// </summary>
        public static void LoadActions()
        {
            _ActionSprites = new Dictionary <Guid, VO_AnimatedSprite[]>();

            foreach (VO_Action action in GameCore.Instance.Game.Actions)
            {
                VO_AnimatedSprite[] animItem = new VO_AnimatedSprite[3];
                if (action.InventoryIcon != Guid.Empty)
                {
                    animItem[0] = new VO_AnimatedSprite(action.InventoryIcon, new Guid(), Enums.AnimationType.IconAnimation, 0, 0, ViewerEnums.ImageResourceType.Permanent);
                }
                if (action.Icon != Guid.Empty)
                {
                    animItem[1] = new VO_AnimatedSprite(action.Icon, new Guid(), Enums.AnimationType.IconAnimation, 0, 0, ViewerEnums.ImageResourceType.Permanent);
                }
                if (action.ActiveIcon != Guid.Empty)
                {
                    animItem[2] = new VO_AnimatedSprite(action.ActiveIcon, new Guid(), Enums.AnimationType.IconAnimation, 0, 0, ViewerEnums.ImageResourceType.Permanent);
                }
                _ActionSprites.Add(action.Id, animItem);
                if (action.GoAction)
                {
                    _GoAction       = action;
                    _GoActionSprite = animItem;
                }
                else if (action.UseAction)
                {
                    _UseAction       = action;
                    _UseActionSprite = animItem;
                }
            }
        }
コード例 #3
0
        /// <summary>
        /// Dessine l'inventaire
        /// </summary>
        private void DrawInventory()
        {
            Guid[,] table = PlayableCharactersManager.CurrentPlayerCharacter.Items;
            for (int i = 0; i < _MenuData.GridHeight; i++)
            {
                for (int j = 0; j < _MenuData.GridWidth; j++)
                {
                    if (table[j, i] != Guid.Empty)
                    {
                        if (_ItemDragDrop != null && table[j, i] == _ItemDragDrop.ItemId)
                        {
                            continue;
                        }
                        else if (ActionManager.ItemAsAction && ActionManager.CurrentLinkedItem.Id == table[j, i])
                        {
                            continue;
                        }
                        else if (ActionManager.ItemInUse == table[j, i])
                        {
                            continue;
                        }

                        //On affiche les items
                        int x = _MenuData.InventoryCoords.X + j * _MenuData.ItemWidth;
                        int y = _MenuData.InventoryCoords.Y + i * _MenuData.ItemHeight;
                        VO_AnimatedSprite item = ItemManager.GetItem(table[j, i], ViewerEnums.TypeIcon.Inventory);
                        item.SetPosition(x, y);
                        Draw(item);
                    }
                }
            }
        }
コード例 #4
0
        /// <summary>
        /// Load Screen
        /// </summary>
        public override void LoadScreen()
        {
            base.LoadScreen();

            _LoadMenuEnabled = false;

            //Musique
            _Music = PathTools.GetProjectPath(Enums.ProjectPath.Musics) + _ProjectData.MainMenuMusic.Filename;

            //Configuration de l'image manager
            ImageManager.SetCurrentStage(Guid.Empty);

            //Création des sprites
            if (_MenuData.MainMenuAnimation != Guid.Empty)
            {
                _Background = new VO_AnimatedSprite(_MenuData.MainMenuAnimation, Enums.AnimationType.Menu, 0, 0);
            }

            //Préparation du menu
            List <string> listChoices = new List <string>();

            listChoices.Add(_TerminologyData.NewGame);
            if (_MenuData.ActivateLoadingMenu)
            {
                listChoices.Add(_TerminologyData.LoadGame);
            }
            //listChoices.Add(_TerminologyData.Options);
            listChoices.Add(_TerminologyData.LeaveGame);

            //Création du menu
            if (_Menu != null)
            {
                _Menu.Dispose();
            }
            _Menu                       = new VO_SelectableMenu(_SpriteBatch, this.Game, listChoices, 25);
            _Menu.FontSize              = 20;
            _Menu.OnClick              += new VO_SelectableMenu.OnClickEventHandler(OnClick);
            _Menu.SelectedValueChanged += new VO_SelectableMenu.SelectedValueChangedEventHandler(Menu_SelectedValueChanged);
            _Menu.Position              = new Vector2(_ProjectData.Resolution.Width / 2 - _Menu.Width / 2, _ProjectData.Resolution.Height / 2 - _Menu.Height / 2);

            //Save/Load menu
            if (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, this.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);
            }
            this.DrawOrder = 0;

            //Donner la main
            ScriptManager.ScriptUserControls = true;
        }
コード例 #5
0
 public virtual void Draw(VO_AnimatedSprite animatedObjectToDraw, float scale, bool animate)
 {
     Draw(animatedObjectToDraw, animate);
     if (scale != animatedObjectToDraw.Scale.X)
     {
         animatedObjectToDraw.SetScale(new Vector2(scale, scale));
     }
 }
コード例 #6
0
        /// <summary>
        /// Retourne une animation
        /// </summary>
        /// <param name="id">Id de l'animation</param>
        /// <param name="type">Type de l'animation</param>
        /// <returns></returns>
        public VO_AnimatedSprite GetAnimatedSprite(Guid id, Enums.StageObjectType type)
        {
            VO_AnimatedSprite anim = null;

            RunServiceTask(delegate
            {
                anim = _Business.GetAnimatedSprite(id, type);
            }, ViewerErrors.STAGE_LOAD_MENU, false, id.ToString(), type.ToString());

            return(anim);
        }
コード例 #7
0
        /// <summary>
        /// Prépare une animation à être dessinée
        /// </summary>
        /// <param name="animation"></param>
        /// <returns></returns>
        public VO_AnimatedSprite DrawAnimated(VO_StageAnimation animation)
        {
            VO_AnimatedSprite animSprite = null;

            RunServiceTask(delegate
            {
                animSprite = _Business.DrawAnimated(animation);
            }, ViewerErrors.STAGE_LOAD_MENU, false, animation.ToString());

            return(animSprite);
        }
コード例 #8
0
        /// <summary>
        /// Charger actions
        /// </summary>
        public static void LoadItems()
        {
            _ItemsSprites = new Dictionary <Guid, VO_AnimatedSprite[]>();

            foreach (VO_Item item in GameCore.Instance.Game.Items)
            {
                VO_AnimatedSprite[] animItem = new VO_AnimatedSprite[3];
                animItem[0] = new VO_AnimatedSprite(item.InventoryIcon, new Guid(), Enums.AnimationType.IconAnimation, 0, 0, ViewerEnums.ImageResourceType.Permanent);
                animItem[1] = new VO_AnimatedSprite(item.Icon, new Guid(), Enums.AnimationType.IconAnimation, 0, 0, ViewerEnums.ImageResourceType.Permanent);
                animItem[2] = new VO_AnimatedSprite(item.ActiveIcon, new Guid(), Enums.AnimationType.IconAnimation, 0, 0, ViewerEnums.ImageResourceType.Permanent);
                _ItemsSprites.Add(item.Id, animItem);
            }
        }
コード例 #9
0
 public Inventory(SpriteBatch spriteBatch, Game game)
 {
     _SpriteBatch = spriteBatch;
     _Service     = new InventoryService();
     _MenuData    = _Service.GetMenuData();
     if (_MenuData.InventoryBackButtonAnimation != Guid.Empty)
     {
         _InventoryButton = new VO_AnimatedSprite(_MenuData.InventoryBackButtonAnimation, Guid.Empty, Enums.AnimationType.Menu, _MenuData.InventoryBackButtonCoords.X, _MenuData.InventoryBackButtonCoords.Y, ViewerEnums.ImageResourceType.Permanent);
     }
     if (_MenuData.InventoryAnimation != Guid.Empty)
     {
         _Inventory = new VO_AnimatedSprite(_MenuData.InventoryAnimation, Guid.Empty, Enums.AnimationType.Menu, _MenuData.InventoryBackgroundCoords.X, _MenuData.InventoryBackgroundCoords.Y, ViewerEnums.ImageResourceType.Permanent);
     }
 }
コード例 #10
0
 /// <summary>
 /// Dessiner sur scène
 /// </summary>
 /// <param name="animatedObjectToDraw"></param>
 public virtual void Draw(VO_AnimatedSprite animatedObjectToDraw)
 {
     //Cas particulier de l'animation
     if (animatedObjectToDraw != null && animatedObjectToDraw.Sprite != null && animatedObjectToDraw.Sprite.Image != null)
     {
         //Si l'animation est conforme, on l'affiche
         _SpriteBatch.Draw(animatedObjectToDraw.Sprite.Image, animatedObjectToDraw.Sprite.Destination, animatedObjectToDraw.Sprite.Source, Color.White);
         animatedObjectToDraw.GetNextSprite();
     }
     else if (animatedObjectToDraw != null && animatedObjectToDraw.Sprite != null && animatedObjectToDraw.Sprite.Image != null)
     {
         //Si les ressources ont été détruites, on regénére l'animation
         animatedObjectToDraw.RegenerateAnim();
         _SpriteBatch.Draw(animatedObjectToDraw.Sprite.Image, animatedObjectToDraw.Sprite.Destination, animatedObjectToDraw.Sprite.Source, Color.White);
     }
 }
コード例 #11
0
 /// <summary>
 /// Dessiner sur scène
 /// </summary>
 /// <param name="animatedObjectToDraw"></param>
 public virtual void Draw(VO_AnimatedSprite animatedObjectToDraw, bool animate)
 {
     //Cas particulier de l'animation
     if (animatedObjectToDraw != null && animatedObjectToDraw.Sprite != null && animatedObjectToDraw.Sprite.Image != null)
     {
         //Si l'animation est conforme, on l'affiche
         Draw(animatedObjectToDraw.Sprite);
         if (animate)
         {
             animatedObjectToDraw.GetNextSprite();
         }
     }
     else if (animatedObjectToDraw != null && animatedObjectToDraw.Sprite != null && animatedObjectToDraw.Sprite.Image != null)
     {
         //Si les ressources ont été détruites, on regénére l'animation
         animatedObjectToDraw.RegenerateAnim();
         Draw(animatedObjectToDraw, animate);
     }
 }
コード例 #12
0
        /// <summary>
        /// Prépare une animation à être dessinée
        /// </summary>
        /// <param name="animation"></param>
        /// <returns></returns>
        public VO_AnimatedSprite DrawAnimated(VO_StageAnimation animation)
        {
            int i = 0;

            foreach (VO_Page page in animation.Event.PageList)
            {
                if (IsActivePage(page))
                {
                    VO_AnimatedSprite animSprite = GetAnimatedSprite(animation.Id, Enums.StageObjectType.Animations);
                    if (animSprite.CurrentExecutingPage != i)
                    {
                        animSprite.SetFrequency(page.AnimationFrequency);
                        animSprite.Frozen = page.AnimationFrozenAtStart;
                        animSprite.CurrentExecutingPage = i;
                    }
                    return(animSprite);
                }
                i++;
            }

            return(null);
        }
コード例 #13
0
 public virtual void Draw(VO_AnimatedSprite animatedObjectToDraw)
 {
     Draw(animatedObjectToDraw, true);
 }