目前,我已經實現了我的淡入淡出效果了,所以,當屏幕打開它[alpha = 0]
開始,然後爲每個雪碧,這是借鑑它[alpha += 2.5f * delta_time]
,直到它達到[alpha + 2.5f * delta >= 1]
...Libgdx - 淡出效果
而且同樣適用於[if screen = closed] --> [alpha = 1]
和[alpha -= 2.5f * delta_time]
,直到它到達[alpha - 2.5f * delta <= 0]
...
這個奇妙的作品在我的窗戶,但我的手機上,它看起來...那麼有時它看起來不錯,但大多數手機時代一直滯後一點,所以它有時會像整個淡入效果一樣跳過。淡出效果效果很好,可能是因爲所有對象都已經創建好了!
因此,如果效果因爲對象和遊戲被創建而造成我的遊戲滯後於淡入淡出效果?你將如何去解決這個問題?
編輯
public void openScreen(float delta) {
playButton.getButton().setColor(playButton.getButton().getColor().r, playButton.getButton().getColor().g, playButton.getButton().getColor().b, alpha);
shopButton.getButton().setColor(shopButton.getButton().getColor().r, shopButton.getButton().getColor().g, shopButton.getButton().getColor().b, alpha);
scoreFont.setColor(scoreFont.getColor().r, scoreFont.getColor().g, scoreFont.getColor().b, alpha);
if (alpha + (2.5f * delta) >= 1) {
alpha = 1f;
playButton.getButton().setColor(playButton.getButton().getColor().r, playButton.getButton().getColor().g, playButton.getButton().getColor().b, alpha);
shopButton.getButton().setColor(shopButton.getButton().getColor().r, shopButton.getButton().getColor().g, shopButton.getButton().getColor().b, alpha);
scoreFont.setColor(scoreFont.getColor().r, scoreFont.getColor().g, scoreFont.getColor().b, alpha);
openable = false;
} else {
alpha += (2.5f * delta);
}
}
public void changeScreen(float delta) {
playButton.getButton().setColor(playButton.getButton().getColor().r, playButton.getButton().getColor().g, playButton.getButton().getColor().b, alpha);
shopButton.getButton().setColor(shopButton.getButton().getColor().r, shopButton.getButton().getColor().g, shopButton.getButton().getColor().b, alpha);
scoreFont.setColor(scoreFont.getColor().r, scoreFont.getColor().g, scoreFont.getColor().b, alpha);
if (alpha - (2.5f * delta) <= 0 && option == 1) {
game.setScreen(new GameScreen(game, assetsClass, preferencesHelper));
dispose();
} else if (alpha - (2.f * delta) <= 0 && option == 2) {
game.setScreen(new InGameShop(game, assetsClass, preferencesHelper));
dispose();
} else {
alpha -= (2.5f * delta);
}
}
這就是所謂的渲染......還有更多的是幾個精靈在渲染,但他們相同的方式處理!所以更換屏幕工作正常,但開放屏幕可能會滯後!
創建它們先隱形然後淡入其中? – Shark
這些精靈的alpha = 0.0f當屏幕被創建時,所以它們是不可見的,但是當屏幕被創建時,在那一刻它是所有的laggish,所以它幾乎不顯示任何淡入效果,如果有的話,或者有時它是好的順利。 –
發佈一些代碼,它可能是某種競爭條件。 – Shark