Пример #1
0
        public virtual void DrawShadow(Renderer renderer)
        {
            if (!RenderShadow || !Visible)
            {
                return;
            }

            Vector2 shadowPosition = Position;
            Vector2 shadowScale    = new Vector2(1.5f);

            if (Skeleton != null)
            {
                if (ShadowFollowBone != null)
                {
                    shadowPosition.X = ShadowFollowBone.WorldX;
                    shadowScale     += new Vector2(ShadowFollowBone.WorldY - Skeleton.RootBone.WorldY) / 400.0f;
                }
            }
            else if (Sprite != null)
            {
                shadowScale *= (Sprite.Data.Width * Sprite.TextureData.ScaleX) / (float)shadowTextureData.Width;
            }

            renderer.SetShader(null);
            renderer.Draw(shadowTextureData, shadowPosition, Color.White * 0.5f, 0.0f, shadowScale * Scale);
        }
Пример #2
0
        public virtual void Draw(Renderer renderer)
        {
            if (!Visible)
            {
                return;
            }

            renderer.SetShader(Shader);

            if (Skeleton != null)
            {
                if (Altitude == 0.0f)
                {
                    renderer.Draw(Skeleton, Tint);
                }
                else
                {
                    Skeleton.RootBone.Y -= Altitude;
                    Skeleton.UpdateWorldTransform();
                    renderer.Draw(Skeleton, Tint);
                    Skeleton.RootBone.Y += Altitude;
                }
            }
            else if (Sprite != null)
            {
                renderer.Draw(Sprite, Position - new Vector2(0.0f, Altitude), Tint, Rotation, Scale);
            }
        }
        public virtual void DrawShadow(Renderer renderer)
        {
            if (!RenderShadow || !Visible)
                return;

            Vector2 shadowPosition = Position;
            Vector2 shadowScale = new Vector2(1.5f);
            if (Skeleton != null)
            {
                if (ShadowFollowBone != null)
                {
                    shadowPosition.X = ShadowFollowBone.WorldX;
                    shadowScale += new Vector2(ShadowFollowBone.WorldY - Skeleton.RootBone.WorldY) / 400.0f;
                }
            }
            else if (Sprite != null)
                shadowScale *= (Sprite.Data.Width * Sprite.TextureData.ScaleX) / (float)shadowTextureData.Width;

            renderer.SetShader(null);
            renderer.Draw(shadowTextureData, shadowPosition, Color.White * 0.5f, 0.0f, shadowScale * Scale);
        }
        public virtual void Draw(Renderer renderer)
        {
            if (!Visible)
                return;

            renderer.SetShader(Shader);

            if (Skeleton != null)
            {
                if (Altitude == 0.0f)
                    renderer.Draw(Skeleton, Tint);
                else
                {
                    Skeleton.RootBone.Y -= Altitude;
                    Skeleton.UpdateWorldTransform();
                    renderer.Draw(Skeleton, Tint);
                    Skeleton.RootBone.Y += Altitude;
                }
            }
            else if (Sprite != null)
                renderer.Draw(Sprite, Position - new Vector2(0.0f, Altitude), Tint, Rotation, Scale);
        }