Я работаю над своим вторым приложением, и до сих пор все прошло хорошо. Но теперь я столкнулся с проблемой, которой просто не могу найти решение.LibGDX Scene2d Действие влияет на несколько актеров
Я использовал сцену stage2d для отображения всего. Теперь я добавил черное изображение, которое исчезает всякий раз, когда вызывается новый экран (как переход).
Моя проблема в том, что, когда я добавляю действие постепенного исчезновения к моему черному изображению, он также исчезает из фона. Интересно, что только не влияет на фон, нет другого Актера, что так всегда.
Я попытался изменить порядок Актеров, поставив их в группы, очистив все действия от фона, установив его альфа-1, но ничего не получилось.
Спасибо, что помогли мне!
Для фона:
public class BackgroundColor extends Actor {
public BackgroundColor(int x) {
this.setBounds(x, 0, 270, 960);
}
public void act(float delta) {
}
public void draw(Batch batch, float alpha) {
batch.draw(image, this.getX(), this.getY(), this.getWidth(), this.getHeight());
}
}
Для экрана:
public class GameScreen implements Screen {
public Stage stage;
public BackgroundColor backgroundColor;
public Image black;
public GameScreen() {
stage = new Stage(new ExtendViewport(540, 900, 540, 960));
Gdx.input.setInputProcessor(stage);
setupStage();
}
private void setupStage() {
backgroundColor = new BackgroundColor(0);
stage.addActor(backgroundColor);
//this is the black layer
black = new Image(AssetLoader.black);
black.setBounds(0, 0, stage.getWidth(), stage.getHeight());
stage.addActor(black);
black.addAction(Actions.sequence(Actions.fadeOut((float)0.5), Actions.touchable(null)));
}
@Override
public void show() {
}
@Override
public void render(float deltaTime) {
Gdx.gl.glClear(0);
stage.act(Gdx.graphics.getDeltaTime());
stage.draw();
}
как вы получаете ** изображение ** переменную в вашем ** BackgroundColor ** классе? Я имею в виду здесь: 'batch.draw (image, this.getX() ...' –
'image' был заменен только статическим TextureRegion I, загруженным раньше. – MrMorph
Пожалуйста, показать код для этого –