有些动作不起作用
Some Actions do not work
我想让一个文字出现在屏幕中央,表示
目前的水平。它应该逐渐出现,并在一段时间后逐渐消失。我将 scene2d 与舞台、演员一起使用。所以我会使用 Actions。
这是我现在拥有的:
public class TextActor extends Actor {
private BitmapFont font;
private CharSequence charSequence;
public TextActor(CharSequence charSequence) {
font = new BitmapFont(Gdx.files.internal("fonts/white_standard_font.fnt"));
this.charSequence = charSequence;
}
@Override
public void act(float delta) {
super.act(delta);
}
@Override
public void draw(Batch batch, float delta) {
super.draw(batch, delta);
font.draw(batch, charSequence, getX(), getY());
}
}
在创建 TextActor 的 class 中..
textActor.addAction(Actions.sequence(Actions.fadeIn(1f), Actions.delay(1f), Actions.fadeOut(1f), new Action() {
@Override
public boolean act(float delta) {
textActor.remove();
transitionInProgress = false;
gameState = GameState.RUNNING;
Gdx.input.setInputProcessor(stage);
return true;
}
}));
gameTable.addActor(textActor);
淡入、淡出、alpha.. 不起作用。我尝试使用 "moveBy" 并且它有效,所以这似乎是关于 Actor 外观的问题。有件事让我想不通。
淡入淡出动作修改 Actor 颜色的 alpha 值 (getColor().a
)。您正在直接绘制字体,而没有应用与演员关联的颜色。
看看 Label.draw 是如何实现的,以便更好地理解。与此同时,只需尝试将此添加到您的 font.draw(...)
调用上方:
font.setColor(getColor())
或者,如果您不想修改整个颜色,只想修改 alpha,试试这个:
font.getColor().a = getColor().a;
更新:
另请注意,您应该将 parentAlpha(绘图的第二个参数 - 在您的示例中标记为增量 )应用到最终的 alpha:
font.getColor().a = getColor().a * parentAlpha
如果您更改舞台的 alpha 或任何 parents。
,这允许您的演员淡入淡出
我想让一个文字出现在屏幕中央,表示 目前的水平。它应该逐渐出现,并在一段时间后逐渐消失。我将 scene2d 与舞台、演员一起使用。所以我会使用 Actions。
这是我现在拥有的:
public class TextActor extends Actor {
private BitmapFont font;
private CharSequence charSequence;
public TextActor(CharSequence charSequence) {
font = new BitmapFont(Gdx.files.internal("fonts/white_standard_font.fnt"));
this.charSequence = charSequence;
}
@Override
public void act(float delta) {
super.act(delta);
}
@Override
public void draw(Batch batch, float delta) {
super.draw(batch, delta);
font.draw(batch, charSequence, getX(), getY());
}
}
在创建 TextActor 的 class 中..
textActor.addAction(Actions.sequence(Actions.fadeIn(1f), Actions.delay(1f), Actions.fadeOut(1f), new Action() {
@Override
public boolean act(float delta) {
textActor.remove();
transitionInProgress = false;
gameState = GameState.RUNNING;
Gdx.input.setInputProcessor(stage);
return true;
}
}));
gameTable.addActor(textActor);
淡入、淡出、alpha.. 不起作用。我尝试使用 "moveBy" 并且它有效,所以这似乎是关于 Actor 外观的问题。有件事让我想不通。
淡入淡出动作修改 Actor 颜色的 alpha 值 (getColor().a
)。您正在直接绘制字体,而没有应用与演员关联的颜色。
看看 Label.draw 是如何实现的,以便更好地理解。与此同时,只需尝试将此添加到您的 font.draw(...)
调用上方:
font.setColor(getColor())
或者,如果您不想修改整个颜色,只想修改 alpha,试试这个:
font.getColor().a = getColor().a;
更新:
另请注意,您应该将 parentAlpha(绘图的第二个参数 - 在您的示例中标记为增量 )应用到最终的 alpha:
font.getColor().a = getColor().a * parentAlpha
如果您更改舞台的 alpha 或任何 parents。
,这允许您的演员淡入淡出