internal Sprite(SpriteData Data) { this.Data = Data; CurrentAction = null; if(Data.Actions.Count > 0) { IEnumerator<KeyValuePair<string, SpriteData.Action>> enumerator = Data.Actions.GetEnumerator(); enumerator.MoveNext(); CurrentAction = enumerator.Current.Value; } }
internal Sprite(SpriteData Data) { this.Data = Data; CurrentAction = null; if (Data.Actions.ContainsKey("default")) { CurrentAction = Data.Actions["default"]; } else if (Data.Actions.Count > 0) { IEnumerator <KeyValuePair <string, SpriteData.Action> > enumerator = Data.Actions.GetEnumerator(); enumerator.MoveNext(); CurrentAction = enumerator.Current.Value; } }
public virtual void Draw(Vector pos) { if (CurrentAction == null || CurrentAction.Frames.Count == 0) { return; } float AnimationTime = (Timer.CurrentTime - ActionTimeOffset) * CurrentAction.Speed; if (_NextAction != null && AnimationTime > (float)CurrentAction.Frames.Count) { AnimationTime -= CurrentAction.Frames.Count; AnimationTime /= CurrentAction.Speed; CurrentAction = _NextAction; _NextAction = null; AnimationTime *= CurrentAction.Speed; } int AnimationFrame = ((int)AnimationTime) % CurrentAction.Frames.Count; Surface Surface = CurrentAction.Frames[AnimationFrame]; Surface.Draw(pos - CurrentAction.Offset); }
public virtual void Draw(Vector pos) { if(CurrentAction == null || CurrentAction.Frames.Count == 0) return; float AnimationTime = (Timer.CurrentTime - ActionTimeOffset) * CurrentAction.Speed; if(_NextAction != null && AnimationTime > (float) CurrentAction.Frames.Count) { AnimationTime -= CurrentAction.Frames.Count; AnimationTime /= CurrentAction.Speed; CurrentAction = _NextAction; _NextAction = null; AnimationTime *= CurrentAction.Speed; } int AnimationFrame = ((int) AnimationTime) % CurrentAction.Frames.Count; Surface Surface = CurrentAction.Frames[AnimationFrame]; Surface.Draw(pos - CurrentAction.Offset); }