Example #1
0
        protected override void LoadContent()
        {
            Vector2 screenCentre = new Vector2(WindowWidth * 0.5f, WindowHeight * 0.5f);

            spriteFont = Content.Load <SpriteFont>(FontName);
            DefaultProviderFactory <ISprite, SoundEffect> factory = new DefaultProviderFactory <ISprite, SoundEffect>(Constants.Config, true);

            foreach (string scmlPath in Constants.ScmlFiles)
            {
                SpriterContentLoader loader = new SpriterContentLoader(Content, scmlPath);
                loader.Fill(factory);

                Stack <SpriteDrawInfo> drawInfoPool = new Stack <SpriteDrawInfo>();

                foreach (SpriterEntity entity in loader.Spriter.Entities)
                {
                    var animator = new MonoGameDebugAnimator(entity, GraphicsDevice, factory, drawInfoPool);
                    animators.Add(animator);
                    animator.Position        = screenCentre;
                    animator.EventTriggered += x => Debug.WriteLine("Event Happened: " + x);
                }
            }

            animator = animators.First();
        }
Example #2
0
        protected override void Load()
        {
            centre   = new Vector2(Width / 2.0f, Height / 2.0f);
            oldState = Keyboard.GetState();

            spriteBatch = new SpriteBatch(GraphicsDevice);

            spriteFont = Content.Load <SpriteFont>(FontName);
            DefaultProviderFactory <ISprite, SoundEffect> factory = new DefaultProviderFactory <ISprite, SoundEffect>(config, true);

            foreach (string scmlPath in Scmls)
            {
                SpriterContentLoader loader = new SpriterContentLoader(Content, scmlPath);
                loader.Fill(factory);

                Stack <SpriteDrawInfo> drawInfoPool = new Stack <SpriteDrawInfo>();

                foreach (SpriterEntity entity in loader.Spriter.Entities)
                {
                    var animator = new MonoGameDebugAnimator(entity, GraphicsDevice, factory, drawInfoPool);
                    animators.Add(animator);
                    animator.Position = centre;
                }
            }

            currentAnimator = animators.First();
            currentAnimator.EventTriggered += CurrentAnimator_EventTriggered;
        }
        public void TestSetUp()
        {
            container = new InjectikusClassTestWrapper();
            var factory = new DefaultProviderFactory();

            binder = new DefaultBinder <I>(container, factory);
        }
Example #4
0
        protected override void OnLoadingContent()
        {
            base.OnLoadingContent();

            content = ContentManager.Create("Content");

            spriteBatch = SpriteBatch.Create();
            spriteFont  = content.Load <SpriteFont>("Fonts/SegoeUI");

            textRenderer  = new TextRenderer();
            textFormatter = new StringFormatter();
            textBuffer    = new StringBuilder();


            DefaultProviderFactory <ISprite, SoundEffect> factory = new DefaultProviderFactory <ISprite, SoundEffect>(Constants.Config, true);

            foreach (string scmlPath in Constants.ScmlFiles)
            {
                SpriterContentLoader loader = new SpriterContentLoader(content, scmlPath);
                loader.Fill(factory);

                Stack <SpriteDrawInfo> drawInfoPool = new Stack <SpriteDrawInfo>();

                foreach (SpriterEntity entity in loader.Spriter.Entities)
                {
                    var animator = new UltravioletAnimator(entity, factory, drawInfoPool);
                    animators.Add(animator);
                    animator.EventTriggered += x => Debug.WriteLine("Event Happened: " + x);
                }
            }

            animator = animators.First();

            GC.Collect(2);
        }
Example #5
0
        protected override void LoadContent()
        {
            base.LoadContent();
            spriteBatch       = new SpriteBatch(Game.GraphicsDevice);
            debugFont         = Game.Content.Load <SpriteFont>("Font");
            guiHP             = Game.Content.Load <Texture2D>("Gui/GUI_Elidia");
            guiKeys           = Game.Content.Load <Texture2D>("Gui/KeyCard");
            shootingBar       = Game.Content.Load <Texture2D>("Gui/shootingBar");
            shootingBarActive = Game.Content.Load <Texture2D>("Gui/shootingBarActive");
            DefaultProviderFactory <ISprite, SoundEffect> factory = new DefaultProviderFactory <ISprite, SoundEffect>(config, true);
            SpriterContentLoader   loader       = new SpriterContentLoader(Game.Content, scml);
            Stack <SpriteDrawInfo> drawInfoPool = new Stack <SpriteDrawInfo>();

            loader.Fill(factory);
            currentAnimator = new GameAnimator(loader.Spriter.Entities[0], 1183, 3772, Game.GraphicsDevice, factory);
            currentAnimator.Play("Idle");
            Vector2 scale = new Vector2((float)0.07);

            currentAnimator.getCorrection(35, 70);
            currentAnimator.Scale    = scale;
            currentAnimator.Position = new Vector2(400, 500);
            for (int i = 0; i < maxBullets; i++)
            {
                bullets.Add(new Bullet(Game.Content.Load <Texture2D>("Elidia Spriter/Elidia Parts side view/Bullet")));
            }
        }
Example #6
0
        public Player(XmasHell game)
        {
            _game             = game;
            _currentDirection = Vector2.Zero;

            _idleAnimationTimer = new CountdownTimer(5);
            _idleAnimationTimer.Stop();
            _idleAnimationTimer.Completed += (sender, args) =>
            {
                Console.WriteLine("PLAY IDLE");
                CurrentAnimator.Play("Idle");
            };

            var playerHitboxTexture = Assets.GetTexture2D("Graphics/Sprites/Player/hitbox");

            var animatorConfig = new Config
            {
                MetadataEnabled = false,
                EventsEnabled   = false,
                PoolingEnabled  = true,
                TagsEnabled     = false,
                VarsEnabled     = false,
                SoundsEnabled   = false
            };

            var factory = new DefaultProviderFactory <ISprite, SoundEffect>(animatorConfig, true);

            var loader = new SpriterContentLoader(_game.Content, "Graphics/Sprites/Player/player");

            loader.Fill(factory);

            Stack <SpriteDrawInfo> drawInfoPool = new Stack <SpriteDrawInfo>();

            foreach (var entity in loader.Spriter.Entities)
            {
                var animator = new CustomSpriterAnimator(_game, entity, factory, drawInfoPool);
                _animators.Add(animator);
            }

            CurrentAnimator = _animators.First();
            var spriteSize = new Vector2(60, 82);

            CurrentAnimator.Position = new Vector2(spriteSize.X / 2f, spriteSize.Y / 2f);
            CurrentAnimator.Play("Idle");

            CurrentAnimator.AnimationFinished += AnimationFinished;

            _hitboxSprite = new Sprite(playerHitboxTexture)
            {
                //Scale = new Vector2(
                //    (GameConfig.PlayerHitboxRadius * 2f) / playerHitboxTexture.Width,
                //    (GameConfig.PlayerHitboxRadius * 2f) / playerHitboxTexture.Height
                //)
            };
            _hitbox = new CollisionCircle(this, Vector2.Zero, GameConfig.PlayerHitboxRadius);

            // Don't forget to set the player position delegate to the MoverManager
            _game.GameManager.MoverManager.SetPlayerPositionDelegate(Position);
        }
 public void Fill(DefaultProviderFactory <Sprite, SoundEffect> factory)
 {
     foreach (SpriterFolder folder in Spriter.Folders)
     {
         if (folder.AtlasId > -1)
         {
             AddAtlasFolder(folder, factory);
         }
         else
         {
             AddRegularFolder(folder, factory);
         }
     }
 }
Example #8
0
        public void Load()
        {
            spriteBatch = new SpriteBatch(Game.GraphicsDevice);
            debugFont   = Game.Content.Load <SpriteFont>("Font");
            DefaultProviderFactory <ISprite, SoundEffect> factory = new DefaultProviderFactory <ISprite, SoundEffect>(config, true);
            SpriterContentLoader loader = new SpriterContentLoader(Game.Content, animationPath);

            loader.Fill(factory);
            animator          = new GameAnimator(loader.Spriter.Entities[0], 60, 288, Game.GraphicsDevice, factory);
            animator.Position = position;
            //Poprawa hitboxow
            animator.getCorrection(25, 140);
            animator.Play("Opened");
            hackingConsole.Load();
        }
Example #9
0
        internal static IResourceProvider GetResourceProvider(string virtualPath, bool isLocal)
        {
            if (!EnsureProviderFactory())
            {
                return(null);
            }

            // TODO: check if it makes sense to cache the providers and, if yes, maybe
            // we should expire the entries (or just store them in InternalCache?)
            IResourceProvider rp = null;

            if (!resource_providers.TryGetValue(virtualPath, out rp))
            {
                if (isLocal)
                {
                    HttpContext ctx = HttpContext.Current;
                    HttpRequest req = ctx != null ? ctx.Request : null;
                    rp = provider_factory.CreateLocalResourceProvider(virtualPath);
                }
                else
                {
                    rp = provider_factory.CreateGlobalResourceProvider(virtualPath);
                }

                if (rp == null)
                {
                    if (isLocal)
                    {
                        HttpContext ctx = HttpContext.Current;
                        HttpRequest req = ctx != null ? ctx.Request : null;
                        rp = DefaultProviderFactory.CreateLocalResourceProvider(virtualPath);
                    }
                    else
                    {
                        rp = DefaultProviderFactory.CreateGlobalResourceProvider(virtualPath);
                    }

                    if (rp == null)
                    {
                        return(null);
                    }
                }

                resource_providers.Add(virtualPath, rp);
            }

            return(rp);
        }
Example #10
0
        private void AddAtlasFolder(SpriterFolder folder, DefaultProviderFactory <ISprite, SoundEffect> factory)
        {
            int id = folder.AtlasId;
            TexturePackerSheet             atlas      = atlases[id];
            Texture2D                      texture    = LoadContent <Texture2D>(FormatPath(atlas.Meta.Image));
            Dictionary <string, ImageInfo> imageInfos = infos[atlas];

            foreach (SpriterFile file in folder.Files)
            {
                ImageInfo info = imageInfos[file.Name];

                // "x", "y" = location in spritesheet, "w", "h" = trimmed unrotated image size
                Size frame = info.Frame;

                // "w", "h" = original image size
                Size source = info.SourceSize;

                // "x", "y" = trimmed offset - pixels trimmed from the top and left
                Size spriteSource = info.SpriteSourceSize;

                Rectangle sourceRectangle;
                bool      rotated = false;

                if (info.Rotated)
                {
                    sourceRectangle = new Rectangle(frame.X, frame.Y, frame.H, frame.W);
                    rotated         = true;
                }
                else
                {
                    sourceRectangle = new Rectangle(frame.X, frame.Y, frame.W, frame.H);
                }

                float trimLeft   = spriteSource.X;
                float trimRight  = source.W - frame.W - spriteSource.X;
                float trimTop    = spriteSource.Y;
                float trimBottom = source.H - frame.H - spriteSource.Y;

                int width  = source.W;
                int height = source.H;

                TexturePackerSprite sprite = new TexturePackerSprite(texture, sourceRectangle, width, height, rotated, trimLeft, trimRight, trimTop, trimBottom);

                factory.SetSprite(Spriter, folder, file, sprite);
            }
        }
        private void AddAtlasFolder(SpriterFolder folder, DefaultProviderFactory <Sprite, SoundEffect> factory)
        {
            SpriterAtlas atlas   = atlases[folder.AtlasId];
            Texture2D    texture = content.Load <Texture2D>(FormatPath(atlas.Meta.Image));
            Dictionary <string, ImageInfo> imageInfos = infos[atlas];

            foreach (SpriterFile file in folder.Files)
            {
                ImageInfo info = imageInfos[file.Name];

                // "x", "y" = location in spritesheet, "w", "h" = trimmed unrotated image size
                Size frame = info.Frame;

                // "w", "h" = original image size
                Size source = info.SourceSize;

                // "x", "y" = trimmed offset - pixels trimmed from the top and left
                Size spriteSource = info.SpriteSourceSize;

                Sprite sprite = new Sprite
                {
                    Texture = texture,
                    Width   = source.W,
                    Height  = source.H
                };

                sprite.TrimLeft   = spriteSource.X;
                sprite.TrimRight  = source.W - frame.W - spriteSource.X;
                sprite.TrimTop    = spriteSource.Y;
                sprite.TrimBottom = source.H - frame.H - spriteSource.Y;

                if (info.Rotated)
                {
                    sprite.SourceRectangle = new Rectangle(frame.X, frame.Y, frame.H, frame.W);
                    sprite.Rotated         = true;
                }
                else
                {
                    sprite.SourceRectangle = new Rectangle(frame.X, frame.Y, frame.W, frame.H);
                }

                factory.SetSprite(Spriter, folder, file, sprite);
            }
        }
Example #12
0
        private void AddRegularFolder(SpriterFolder folder, DefaultProviderFactory <ISprite, SoundEffect> factory)
        {
            foreach (SpriterFile file in folder.Files)
            {
                string path = FormatPath(file.Name);

                if (file.Type == SpriterFileType.Sound)
                {
                    SoundEffect sound = LoadContent <SoundEffect>(path);
                    factory.SetSound(Spriter, folder, file, sound);
                }
                else
                {
                    Texture2D     texture = LoadContent <Texture2D>(path);
                    TextureSprite sprite  = new TextureSprite(texture);
                    factory.SetSprite(Spriter, folder, file, sprite);
                }
            }
        }
Example #13
0
        public void Fill(DefaultProviderFactory <ISprite, SoundEffect> factory)
        {
            if (Spriter == null)
            {
                Load();
            }

            foreach (SpriterFolder folder in Spriter.Folders)
            {
                if (atlases != null && atlases.Count > 0)
                {
                    AddAtlasFolder(folder, factory);
                }
                else
                {
                    AddRegularFolder(folder, factory);
                }
            }
        }
Example #14
0
        public void Load()
        {
            //base.LoadContent();
            spriteBatch = new SpriteBatch(Game.GraphicsDevice);
            DefaultProviderFactory <ISprite, SoundEffect> factory = new DefaultProviderFactory <ISprite, SoundEffect>(config, true);
            SpriterContentLoader loader = new SpriterContentLoader(Game.Content, animationPath);

            loader.Fill(factory);
            animator = new GameAnimator(loader.Spriter.Entities[0], 1300, 3500, Game.GraphicsDevice, factory);
            Vector2 scale = new Vector2((float)0.07);

            animator.Scale = scale;
            animator.getCorrection(correctionX, correctionY);
            animator.Position = new Vector2(positionX, positionY);
            debugFont         = Game.Content.Load <SpriteFont>("Font");
            animator.Play("idle_reverse");
            for (int i = 0; i < maxBullets; i++)
            {
                bullets.Add(new Bullet(Game.Content.Load <Texture2D>("Elidia Spriter/Elidia Parts side view/Bullet")));
            }
        }
Example #15
0
        protected virtual void LoadSpriterSprite()
        {
            if (SpriterFilename == string.Empty)
            {
                throw new Exception("You need to specify a path to the spriter file of this boss");
            }

            var factory = new DefaultProviderFactory <ISprite, SoundEffect>(DefaultAnimatorConfig, true);

            var loader = new SpriterContentLoader(Game.Content, SpriterFilename);

            loader.Fill(factory);

            foreach (var entity in loader.Spriter.Entities)
            {
                var animator = new CustomSpriterAnimator(entity, factory);
                Animators.Add(animator);
            }

            CurrentAnimator = Animators.First();
        }
Example #16
0
        private static Dictionary <string, CustomSpriterAnimator> LoadSpriterFile(ContentManager content, string filename)
        {
            var factory = new DefaultProviderFactory <ISprite, SoundEffect>(DefaultAnimatorConfig, true);

            var loader = new SpriterContentLoader(content, filename);

            loader.Fill(factory);

            var animators = new Dictionary <string, CustomSpriterAnimator>();

            foreach (var entity in loader.Spriter.Entities)
            {
                var animator = new CustomSpriterAnimator(entity, factory);

                // Center the animator
                animator.Position = XmasHell.Instance().ViewportAdapter.Center.ToVector2();

                animators.Add(entity.Name, animator);
            }

            return(animators);
        }
Example #17
0
        protected virtual void LoadSpriterSprite(String spriterFilename)
        {
            if (spriterFilename == string.Empty)
            {
                throw new Exception("You need to specify a path to the spriter file of this boss");
            }

            var factory = new DefaultProviderFactory <ISprite, SoundEffect>(DefaultAnimatorConfig, true);

            var loader = new SpriterContentLoader(Game.Content, spriterFilename);

            loader.Fill(factory);

            foreach (var entity in loader.Spriter.Entities)
            {
                var animator = new CustomSpriterAnimator(Game, entity, factory);
                // Center the animator
                animator.Position = Game.ViewportAdapter.Center.ToVector2();

                Animators.Add(entity.Name, animator);
            }
        }
        protected override void LoadContent()
        {
            Vector2 modelScale = new Vector2(_options.CurrentValue.ModelScale, _options.CurrentValue.ModelScale);

            _backgroundColor = Color.CornflowerBlue;
            Vector2 screenCenter = new Vector2(_options.CurrentValue.WindowWidth * 0.5f, _options.CurrentValue.WindowHeight * 0.5f);

            _spriteFont = Content.Load <SpriteFont>(_options.CurrentValue.FontName);

            DefaultProviderFactory <ISprite, SoundEffect> factory = new DefaultProviderFactory <ISprite, SoundEffect>(SpriterDemoOptions.Config, true);

            foreach (string scmlPath in _options.CurrentValue.RobotSprites)
            {
                SpriterDemoContentLoader loader = new SpriterDemoContentLoader(Content, scmlPath);
                loader.Fill(factory);

                Stack <SpriteDrawInfo> drawInfoPool = new Stack <SpriteDrawInfo>();

                foreach (SpriterEntity entity in loader.Spriter.Entities)
                {
                    var animator = new MonoGameDebugAnimator(entity, GraphicsDevice, factory, drawInfoPool);
                    _animators[Robot.Prefix + entity.Name] = animator;
                    //animator.Scale = modelScale;
                    //animator.Position = new Vector2(_options.CurrentValue.WindowWidth - (100 * modelScale.X), screenCenter.Y);
                    //animator.DrawBoxOutlines = true;
                    //animator.AnimationFinished += AnimatorFinished;
                }
            }

            foreach (string scmlPath in _options.CurrentValue.MenuSprites)
            {
                SpriterDemoContentLoader loader = new SpriterDemoContentLoader(Content, scmlPath);
                loader.Fill(factory);
                Stack <SpriteDrawInfo> drawInfoPool = new Stack <SpriteDrawInfo>();

                foreach (SpriterEntity entity in loader.Spriter.Entities)
                {
                    var menu = new MonoGameDebugAnimator(entity, GraphicsDevice, factory, drawInfoPool);
                    _animators[MenuItem.Prefix + entity.Name] = menu;
                }
            }

            var debugRobots = new List <string> {
                "offense_robot", "defense_robot", "utility_robot", "generic_robot"
            };

            foreach (var robotName in debugRobots)
            {
                string key = Robot.Prefix + robotName;
                if (_animators.ContainsKey(key))
                {
                    var robot = new Robot(robotName, _animators[key]);
                    robot.Animator.Position = new Vector2(250 * _robots.Count + 200, screenCenter.Y);
                    robot.Animator.Scale    = new Vector2(1f, 1f);
                    AddContextMenuItem(robot, "menu_tinker", MenuPosition.Left);
                    AddContextMenuItem(robot, "menu_attack", MenuPosition.Top);
                    AddContextMenuItem(robot, "menu_defend", MenuPosition.Right);

                    _robots[robot.Key] = robot;
                }
            }
            //_animator = _animators.First();
        }
Example #19
0
 public void SetUp()
 {
     factory = new DefaultProviderFactory();
 }