BitmapFont的Alpha动画

时间:2015-08-17 08:07:25

标签: java android animation fonts libgdx

我是libgdx的新手,想知道是否有一种简单的方法可以对BitmapFont进行alpha动画处理我目前正在使用... img1: TImage; // TImage placed on the TForm1 ... procedure TForm1.DrawSVG(const aFileName: TFileName); var wSVGObject: IRSVGObject; wSurface: IWin32Surface; wContext: ICairoContext; wRect: TRect; begin wSVGObject := TRSVGObject.Create(aFileName); // img1 initialization wRect.Left := 0; wRect.Top := 0; wRect.width := img1.width; wRect.height := img1.height; img1.Canvas.Brush.Color := clWhite; img1.Canvas.FillRect(wRect); wSurface := TWin32Surface.CreateHDC(img1.Canvas.Handle); wContext := TCairoContext.Create(wSurface); wContext.Antialias := CAIRO_ANTIALIAS_DEFAULT; // try to change color of vector image, but only first path changes color wContext.SetSourceRGB(0.5, 0.5, 0.5); wContext.Rectangle(wRect.Left, wRect.Top, wRect.width, wRect.height); wSurface.Flush; wContext.FillPreserve; wContext.RenderSVG(wSVGObject); end; 来生成我的字体样式,如果我打电话:

FreeTypeFont

然后它会将我的文本恢复正常从我的FreeTypeFont中删除样式。

如何在不从FreeType中删除其样式的情况下为位图字体设置动画?

1 个答案:

答案 0 :(得分:0)

您可以使用 Label() ;

轻松更改字体颜色

在您创建课程时,您将拥有:

labelStyle = new LabelStyle(yourFreeTypeFont, new Color(1,1,1,1));
label = new Label("Your Text", labelStyle);

render()中你会:

labelStyle.fontColor = new Color(1,1,1,0);
label.setStyle(labelStyle);

通过这种方法,你可以改变任何渠道,而不仅仅是alpha

编辑:第二种方法

现在我想到了,因为Label()是一个演员,有一种更好的方法来改变alpha通道。 您可以使用以下命令立即更改标签的Alpha值:

label.addAction(Actions.alpha(floate alphaValue));

或者您可以通过以下方式进行渐进式更改:

label.addAction(Actions.alpha(float alphaValue, float duration));