2016-05-17 5 views
0
game.batch.setColor(1,1,1,alpha) 

Я расширяю игру и реализую экран. Таким образом, класс игры - это класс, переданный на экран игры. Тогда в игре экран, когда вы попали в стену, я делаю это:Libgdx - SpriteBatch alpha не работает

alpha -= delta; 
if (alpha <= 0) { 
    alpha = 0; 
} 
game.batch.setColor(1, 1, 1, alpha); 
if (alpha == 0) { 
    restartGame(); 
} 

Он работает нормально, если я вручную изменить transperency для каждого спрайта. Но похоже, что .setColor даже не работает для SpriteBatch.

ответ

0

Когда вы вызываете sprite.draw(batch), он игнорирует любой цвет, на который установлена ​​партия, и использует цвет спрайта. Если вы хотите исчезнуть каждый из ваших спрайтов, вы должны изменить альфа каждого из ваших спрайтов.

+0

О, хорошо, это довольно хлопот. В прошлый раз, когда я менял экраны, я все время угасал. Поэтому, хотя я мог бы просто установить цвет партии. Ну хорошо ... –

+0

Я считаю, что вы можете использовать batch.draw (...) вместо sprite.draw (пакетный). Я думаю, что это сработает. – Barodapride

+0

Да, но тогда вы могли бы также использовать TextureRegions, так как вы должны также указать для этого метода позиционирование, поворот и размер. – Tenfour04