2016-06-14 3 views
0

Пожалуйста, помогите мне. Я стараюсь:FadeIn Action в LibGDX не работает правильно

actor.addAction(Actions.fadeOut(1.5f)); 

я получаю: Вся моя стадия исчезает из.

Итак, мой вопрос заключается в том, почему угасает не только один актер, для которого я применил действие fadeOut, но и всю мою сцену (или, по крайней мере, некоторые другие актеры)?

Моя делают:

@Override 
    public void render(float delta) { 
     Gdx.gl.glClearColor(255, 255, 255, 1); 
     Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); 
     stage.draw(); 
     stage.act(); 
    } 

Спасибо за ваши ответы.

+1

Unrelated на ваш вопрос, но 'glClearColor' ожидает нормированные цвета между 0 и 1. – Tenfour04

ответ

3

Любой класс актер самостоятельно должен применить свой цвет к партии. Это необязательно с такими вещами, как BitmapFont и Sprite, которые передают цветные вершины непосредственно в пакет, но любой актер, который вызывает batch.draw, должен сначала передать цвет, даже если это Color.WHITE, но обычно вам нужно передать getColor() в партию.

Это потому, что нет гарантии того, какой цвет был оставлен в партии от любых ранее привлеченных актеров.

Кроме того, если ваши актеры находятся в группах, и вы хотите, чтобы они исчезают с их родителями, то они должны принимать родительский альфа во внимание:

Color color = getColor(); 
batch.setColor(color.r, color.g, color.b, color.a * parentAlpha); 
0

Убедитесь, что реализация вашего актерского розыгрыша() не меняет цвет данной партии в

+0

'@Override public void draw (пакетная партия, float parentAlpha) { batch.draw (cardTexture, getX(), getY(), getWidth(), getHeight()); super.draw (партия, parentAlpha); } ' –

+0

Вы прямо распространяете актер? Затем вы можете удалить super.draw (пакетный, parentalpha); в противном случае, покажите мне этот способ. – Barodapride

+0

В 'actor.draw' нет« контракта », чтобы вы оставили белый цвет партии. Многие встроенные виджеты LibGDX оставляют пакет с любым старым произвольным цветом. Вместо этого вам нужно знать, когда подклассификация Actor, что вы не можете предположить, что пакет, переданный в 'actor.draw', имеет цвет' WHITE'. – Tenfour04