2015-09-12 2 views
2

Я работаю над своим вторым приложением, и до сих пор все прошло хорошо. Но теперь я столкнулся с проблемой, которой просто не могу найти решение.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(); 
} 
+0

как вы получаете ** изображение ** переменную в вашем ** BackgroundColor ** классе? Я имею в виду здесь: 'batch.draw (image, this.getX() ...' –

+0

'image' был заменен только статическим TextureRegion I, загруженным раньше. – MrMorph

+0

Пожалуйста, показать код для этого –

ответ

1

Так, я вроде понял это ...

, по-видимому, имеющие различное изображение в качестве первого слоя этап решает проблему.

Я добавил случайное изображение перед backgroundColor = new BackgroundColor(0); и исправил его.

Я до сих пор понятия не имею, что вызывает это, может быть, я пропустил что-то ...

Было бы здорово, если бы вы могли сказать мне, что здесь происходит!

Cheers

Смежные вопросы