Пример #1
0
        public void Hide(CharacterTypeShowing typeShowing = CharacterTypeShowing.Normal)
        {
            var text = (Game.Scene as TextScene).NovelInfo.LastOrDefault();

            if (text == null)
            {
                text = new NovelAction();
                (Game.Scene as TextScene).NovelInfo.Add(text);
            }

            text.UpdateActions.Add(() =>
            {
                if (typeShowing == CharacterTypeShowing.Fade)
                {
                    _isHide = true;
                }
                else
                {
                    IsVisible = false;
                }
            });
        }
Пример #2
0
        public void Show(
            Direction direction       = Direction.Left,
            Emotion emotion           = Emotion.Normal,
            CharacterTypeShowing type = CharacterTypeShowing.Normal,
            float positionOffset      = 0
            )
        {
            var text = (Game.Scene as TextScene).NovelInfo.LastOrDefault();

            if (text == null)
            {
                text = new NovelAction();
                (Game.Scene as TextScene).NovelInfo.Add(text);
            }

            text.UpdateActions.Add(() =>
            {
                if (_sprite == null)
                {
                    _sprite = new Sprite(Cache.GetTexture($"{Texture}_{(int) emotion}"));

                    switch (direction)
                    {
                    case Direction.Left:
                        _sprite.Position = new Vector2f
                                           (
                            (float)(1920 * 0.1 + positionOffset),
                            1080 - _sprite.TextureRect.Height
                                           );
                        break;

                    case Direction.Right:
                        _sprite.Position = new Vector2f
                                           (
                            (float)(1920 - 1920 * 0.1 + positionOffset),
                            1080 - _sprite.TextureRect.Height
                                           );
                        break;

                    case Direction.Center:
                        _sprite.Position = new Vector2f
                                           (
                            (1920 / 2f - _sprite.TextureRect.Width / 2f + positionOffset),
                            1080 - _sprite.TextureRect.Height
                                           );


                        break;
                    }
                }
                if (type == CharacterTypeShowing.Fade)
                {
                    _sprite.Color = new Color(_sprite.Color.R, _sprite.Color.G, _sprite.Color.B, 0);
                }

                if (!Game.Scene.GameObjects.Contains(this))
                {
                    Game.Scene.GameObjects.Insert(1, this);
                }

                _isHide   = false;
                IsVisible = true;
            });
        }