public override void Draw(GdxSpriteBatch spriteBatch, float x, float y, float width, float height) { Sprite.SetBounds(x, y, width, height); Color color = Sprite.Color; Sprite.Color = ColorExt.Multiply(color, spriteBatch.Color); Sprite.Draw(spriteBatch); Sprite.Color = color; }
public void Draw(GdxSpriteBatch spriteBatch, float x, float y, float width, float height) { float centerColX = x + LeftWidth; float rightColX = x + width - RightWidth; float middleRowY = y + BottomHeight; float topRowY = y + height - TopHeight; Color color = ColorExt.Multiply(Color, spriteBatch.Color); color = Color.FromNonPremultiplied(color.R, color.G, color.B, color.A); if (_bottomLeft != -1) { Set(_bottomLeft, x, y, centerColX - x, middleRowY - y, color); } if (_bottomCenter != -1) { Set(_bottomCenter, centerColX, y, rightColX - centerColX, middleRowY - y, color); } if (_bottomRight != -1) { Set(_bottomRight, rightColX, y, x + width - rightColX, middleRowY - y, color); } if (_middleLeft != -1) { Set(_middleLeft, x, middleRowY, centerColX - x, topRowY - middleRowY, color); } if (_middleCenter != -1) { Set(_middleCenter, centerColX, middleRowY, rightColX - centerColX, topRowY - middleRowY, color); } if (_middleRight != -1) { Set(_middleRight, rightColX, middleRowY, x + width - rightColX, topRowY - middleRowY, color); } if (_topLeft != -1) { Set(_topLeft, x, topRowY, centerColX - x, y + height - topRowY, color); } if (_topCenter != -1) { Set(_topCenter, centerColX, topRowY, rightColX - centerColX, y + height - topRowY, color); } if (_topRight != -1) { Set(_topRight, rightColX, topRowY, x + width - rightColX, y + height - topRowY, color); } spriteBatch.Draw(Texture, _vertices, 0, _index); }