private void SwitchScml() { int index = animators.IndexOf(currentAnimator); ++index; if (index >= animators.Count) index = 0; currentAnimator = animators[index]; }
protected override void LoadContent() { spriteBatch = new SpriteBatch(GraphicsDevice); spriteFont = Content.Load<SpriteFont>(FontName); Vector2 charPosition = new Vector2(Width / 2.0f, Height / 1.5f); foreach (var pair in Scmls) { string scmlPath = pair.Key; string spriterName = pair.Value; string data = File.ReadAllText(scmlPath); Spriter spriter = SpriterParser.Parse(data); var animator = new MonogameSpriterAnimator(spriter.Entities[0], charPosition, spriteBatch); RegisterTextures(animator, spriter, spriterName); animators.Add(animator); } currentAnimator = animators.First(); }
private void RegisterTextures(MonogameSpriterAnimator animator, Spriter spriter, string spriterName) { foreach (SpriterFolder folder in spriter.Folders) { foreach (SpriterFile file in folder.Files) { string path = FormatPath(folder, file, spriterName); Texture2D texture = null; try { texture = Content.Load<Texture2D>(path); } catch { Debug.WriteLine("Missing Texture: " + path); } if (texture == null) continue; animator.Register(folder.Id, file.Id, texture); } } }