private void DrawObjectBoxes(SpriterAnimationPlayer player, IEnumerator <SpriterObject> objectIterator) { while (objectIterator.MoveNext()) { DrawBox(player.GetBox(objectIterator.Current)); } }
// 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); }
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(); }
public void DrawBoxes(SpriterAnimationPlayer player) { SetColor(Color.Red); DrawBoneBoxes(player); DrawObjectBoxes(player); DrawPoints(player); }
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 ); }
public void DrawBoneBoxes(SpriterAnimationPlayer player, IEnumerator <Bone> boneIterator) { while (boneIterator.MoveNext()) { Bone bone = boneIterator.Current; DrawBox(player.GetBox(bone)); } }
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); } }
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); } } }
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>; }
private void DrawBoneBoxes(SpriterAnimationPlayer player) { DrawBoneBoxes(player, player.BoneIterator()); }
private void DrawObjectBoxes(SpriterAnimationPlayer player) { DrawObjectBoxes(player, player.ObjectIterator()); }
private void DrawPoints(SpriterAnimationPlayer player) { throw new NotImplementedException(); }
public abstract void Draw(SpriterAnimationPlayer player, SpriterObject obj, SpriteBatch sb);
private void Draw(SpriterAnimationPlayer player, Entity.CharacterMap[] characterMaps, SpriteBatch sb) { Draw(player, player.ObjectIterator(), characterMaps, sb); }
public void Draw(SpriterAnimationPlayer player, SpriteBatch sb) { Draw(player, player.CharacterMaps, sb); }