public override IEnumerable <AnimationContext> Get(BaseSprite sprite) { foreach (var context in m_list) { if (context.Sprite == sprite) { yield return(context); } } }
public virtual Vector2 GetCompleteScale(BaseSprite viewport = null) { var scale = new Vector2(ScaleX, ScaleY); if (viewport != null) { scale.X = scale.X * viewport.ScaleX; scale.Y = scale.Y * viewport.ScaleY; } return(scale); }
protected override AnimationContext ApplyCore(BaseSprite sprite) { return(new ColorAnimationContext() { StartR = m_startColor.R / 255f, FinalR = m_finalColor.R / 255f, StartG = m_startColor.G / 255f, FinalG = m_finalColor.G / 255f, StartB = m_startColor.B / 255f, FinalB = m_finalColor.B / 255f, }); }
public override void Draw(SpriteBatch spriteBatch, BaseSprite viewport = null) { if (!GetCompleteVisible()) { return; } spriteBatch.DrawString(Font.Font, Text, GetCompletePosition(viewport), GetCompleteColor(), Rotation, GetCompleteOrigin(), GetCompleteScale(viewport), Effects, Depth); }
public override void Draw(SpriteBatch spriteBatch, BaseSprite viewport = null) { if (!GetCompleteVisible()) { return; } spriteBatch.Draw(Frame.AtlasTexture, GetCompletePosition(viewport), Frame.GetSourceRectangle(), GetCompleteColor(), Rotation, GetCompleteOrigin(), GetCompleteScale(viewport), Effects, Depth); }
public void Apply(BaseSprite sprite, bool reverse = false, Action onComplete = null, Action onBegin = null) { var context = ApplyCore(sprite); context.Sprite = sprite; context.Reverse = reverse; context.Begin = onBegin; context.Complete = onComplete; context.Time = (context.Reverse ? Duration : 0); if (m_container != null) { m_container.Add(context); } else if (m_context == null) { m_context = context; } else { m_contextsToRemove = new List <AnimationContext>(); switch (m_containerType) { case ContainerType.List: m_container = new ListContainer(); break; case ContainerType.Dictionary: m_container = new DictionaryContainer(); break; default: break; } m_container.Add(m_context); m_context = null; m_container.Add(context); } }
public bool Revert(BaseSprite sprite) { if (m_container != null) { bool result = false; foreach (var context in m_container.Get(sprite)) { context.Reverse = !context.Reverse; result = true; } return(result); } else if (m_context != null) { if (m_context.Sprite == sprite) { m_context.Reverse = !m_context.Reverse; return(true); } return(false); } return(false); }
public bool IsInViewPortByBoundingBox(BaseSprite sprite) { return(GetViewPortBox(sprite).Intersects(sprite.GetBoundingBox())); }
public bool IsInViewPortByBoundingRadius(BaseSprite sprite) { return(GameMath.Intersects(sprite.GetBoundingCircle(), GetViewPortBox(sprite))); }
public Rectangle GetViewPortBox(BaseSprite sprite) { return(new Rectangle((sprite.Fixed ? 0 : (int)X), (sprite.Fixed ? 0 : (int)Y), Width, Height)); }
protected virtual AnimationContext ApplyCore(BaseSprite sprite) { return(new AnimationContext()); }
public virtual void Remove(BaseSprite sprite) { m_sprites.Remove(sprite); }
public virtual void Add(BaseSprite sprite) { m_sprites.Add(sprite); }
public virtual void Draw(SpriteBatch spriteBatch, BaseSprite viewport = null) { }
public abstract IEnumerable <AnimationContext> Get(BaseSprite sprite);