我是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中删除其样式的情况下为位图字体设置动画?
答案 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));