private Animation animation;
@Override
public void render(MatrixStack matrixStack, int mouseX, int mouseY, float partialTicks) {
// если анимка закрытия закончилась, то закрыть гуи
if(animation != null && animation.getEndPoint() == 1 && animation.isDone())
super.closeScreen();
GlStateManager.pushMatrix();
GlStateManager.translatef(windowWidth / 2, windowHeight / 2, 0);
GlStateManager.scaled(animation.getOutput(), animation.getOutput(), 1);
GlStateManager.translatef(-windowWidth / 2f, -windowHeight / 2f, 0);
// Тута отрисовываешь все элементы гуи
GlStateManager.popMatrix();
super.render(matrixStack, mouseX, mouseY, partialTicks);
}
@Override
protected void init() {
animation = new EaseInOutQuad(200, 0, 1, Direction.FORWARDS);
super.init();
}
@Override
public void closeScreen() {
animation = new EaseInOutQuad(200, 1, 0, Direction.FORWARDS);
// напишешь тут super.closeScreen() будет горе
}