Example #1
0
 private void DrawObjectBoxes(SpriterAnimationPlayer player, IEnumerator <SpriterObject> objectIterator)
 {
     while (objectIterator.MoveNext())
     {
         DrawBox(player.GetBox(objectIterator.Current));
     }
 }
Example #2
0
        // TODO MOAR HAX
        public static SpriterAnimationPlayer LoadAnimation(Game game, string file, ref SpriterRenderer <T> renderer)
        {
            SpriterData data = game.Content.Load <SpriterData>(file);

            object[]          args   = { game, data };
            Type              to     = lookup[typeof(T)];
            SpriterLoader <T> loader = Activator.CreateInstance(to, args) as SpriterLoader <T>;
            string            root   = file;

            if (root.Contains(Path.DirectorySeparatorChar))
            {
                root = root.Substring(0, root.LastIndexOf(Path.DirectorySeparatorChar));
            }
            else
            {
                root = "";
            }

            loader.Load(root);
            SpriterAnimationPlayer player = new SpriterAnimationPlayer(data.GetEntity(0));

            player.SetAnimation(0);
            renderer = Activator.CreateInstance(lookup2[typeof(T)], new object[] { loader }) as SpriterRenderer <T>;

            return(player);
        }
Example #3
0
        public HowManyPlayersMenu(Game game)
            : base(game)
        {
            Name = "Main";

            animations = new List <SpriterAnimationPlayer>();
            renderers  = new List <SpriterRenderer <Texture2D> >();

            for (int i = 0; i < 4; i++)
            {
                SpriterRenderer <Texture2D> renderer  = null;
                SpriterAnimationPlayer      animation = SpriterComponent <Texture2D> .LoadAnimation(game, @"Animations\Player\Player", ref renderer);

                string[] charmaps = { "GREEN", "RED", "YELLOW" };


                if (i > 0)
                {
                    animation.CharacterMaps    = new Entity.CharacterMap[1];
                    animation.CharacterMaps[0] = animation.Entity.GetCharacterMap(charmaps[i - 1]);
                }

                animation.SetAnimation("Walk");
                animation.SetScale(0.5f);
                renderers.Add(renderer);
                animations.Add(animation);
            }

            OnInitialize();
        }
Example #4
0
 public void DrawBoxes(SpriterAnimationPlayer player)
 {
     SetColor(Color.Red);
     DrawBoneBoxes(player);
     DrawObjectBoxes(player);
     DrawPoints(player);
 }
Example #5
0
        public override void Draw(SpriterAnimationPlayer player, SpriterObject obj, SpriteBatch sb)
        {
            Texture2D texture = Loader[obj.@ref];
            Vector2   flip    = new Vector2(obj.Scale.X < 0f ? -1.0f : 1.0f, obj.Scale.Y < 0f ? -1.0f : 1.0f);

            float newPivotX = texture.Width * obj.Pivot.X;
            float newPivotY = texture.Height * (1f - obj.Pivot.Y);

            Point   x           = obj.Position;
            Vector2 playerPos   = new Vector2(player.X, player.Y);
            Vector2 objPosition = new Vector2(x.X, x.Y);


            // normal case scenario
            Vector2 diff = objPosition - playerPos;

            diff.Y = -diff.Y;


            Vector2 origin = new Vector2(newPivotX, newPivotY);

            SpriteEffects effects = SpriteEffects.None;

            bool flipx = flip.X < 0f;
            bool flipy = flip.Y < 0f;

            float rotation = -MathHelper.ToRadians(obj.Angle);

            if (flipx)
            {
                effects  = SpriteEffects.FlipHorizontally;
                origin.X = texture.Width - origin.X;

                diff = playerPos - objPosition;
            }

            // TODO EI TOIMI
            if (flipy)
            {
                effects |= SpriteEffects.FlipVertically;
                origin.Y = texture.Height - origin.Y;
                diff.Y   = Math.Abs(diff.Y);
            }

            Vector2 position = playerPos + Vector2.Multiply(diff, flip);

            sb.Draw(
                texture,
                position,
                null,
                null,
                origin,
                rotation,
                new Vector2(Math.Abs(obj.Scale.X), Math.Abs(obj.Scale.Y)),
                Color.White * obj.Alpha,
                effects,
                0f
                );
        }
Example #6
0
 public void DrawBoneBoxes(SpriterAnimationPlayer player, IEnumerator <Bone> boneIterator)
 {
     while (boneIterator.MoveNext())
     {
         Bone bone = boneIterator.Current;
         DrawBox(player.GetBox(bone));
     }
 }
Example #7
0
        public void DrawBones(SpriterAnimationPlayer player)
        {
            SetColor(Color.Red);
            IEnumerator <Bone> it = player.BoneIterator();

            while (it.MoveNext())
            {
                Bone        bone = it.Current;
                TimelineKey key  = player.GetKeyFor(bone);
                if (!key.Active)
                {
                    continue;
                }
                Entity.ObjectInfo info = player.GetObjectInfoFor(bone);
                Dimension         size = info.Size;
                DrawBone(bone, size);
            }
        }
Example #8
0
 private void Draw(SpriterAnimationPlayer player, IEnumerator <SpriterObject> objectIterator, Entity.CharacterMap[] characterMaps, SpriteBatch sb)
 {
     while (objectIterator.MoveNext())
     {
         SpriterObject obj = objectIterator.Current;
         if ([email protected]())
         {
             if (characterMaps != null)
             {
                 foreach (var characterMap in characterMaps)
                 {
                     if (characterMap != null)
                     {
                         [email protected](characterMap.Get(obj.@ref));
                     }
                 }
             }
             Draw(player, obj, sb);
         }
     }
 }
Example #9
0
        private void Init(string file)
        {
            data = owner.Game.Content.Load <SpriterData>(file);
            object[] args = { owner.Game, data };
            Type     to   = lookup[typeof(T)];

            loader = Activator.CreateInstance(to, args) as SpriterLoader <T>;
            string root = file;

            if (root.Contains(Path.DirectorySeparatorChar))
            {
                root = root.Substring(0, root.LastIndexOf(Path.DirectorySeparatorChar));
            }
            else
            {
                root = "";
            }

            loader.Load(root);
            player = new SpriterAnimationPlayer(data.GetEntity(0));
            player.SetAnimation(0);
            renderer = Activator.CreateInstance(lookup2[typeof(T)], new object[] { loader }) as SpriterRenderer <T>;
        }
Example #10
0
 private void DrawBoneBoxes(SpriterAnimationPlayer player)
 {
     DrawBoneBoxes(player, player.BoneIterator());
 }
Example #11
0
 private void DrawObjectBoxes(SpriterAnimationPlayer player)
 {
     DrawObjectBoxes(player, player.ObjectIterator());
 }
Example #12
0
 private void DrawPoints(SpriterAnimationPlayer player)
 {
     throw new NotImplementedException();
 }
Example #13
0
 public abstract void Draw(SpriterAnimationPlayer player, SpriterObject obj, SpriteBatch sb);
Example #14
0
 private void Draw(SpriterAnimationPlayer player, Entity.CharacterMap[] characterMaps, SpriteBatch sb)
 {
     Draw(player, player.ObjectIterator(), characterMaps, sb);
 }
Example #15
0
 public void Draw(SpriterAnimationPlayer player, SpriteBatch sb)
 {
     Draw(player, player.CharacterMaps, sb);
 }