/// <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; } } }
/// <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; } } }
/// <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); } } } }
/// <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; }
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)); } }
/// <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); }
/// <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); }
/// <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); } }
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); } }
/// <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); } }
/// <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); } }
/// <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); }
public virtual void Draw(VO_AnimatedSprite animatedObjectToDraw) { Draw(animatedObjectToDraw, true); }