Follow along with the video below to see how to install our site as a web app on your home screen.
Примечание: This feature may not be available in some browsers.
long startTime;
onGuiOpened(...) {
startTime = System.currentTimeMillis();
}
...
long deltaTime = System.currentTimeMillis() - startTime;
long animationDuration = 1000L; //появление за 1 секунду
double alphaMult = (deltaTime*1D)/(animationDuration*1D); //чтобы точно перевело в double
alphaMult = Math.max(0, Math.min(1, alphaMult)); //ограничиваем диапазон значений переменной от 0 до 1
GL11.glColor4d(1, 1, 1, alphaMult);
...
<отрисовка изображения>
Я явно делаю что-то не так >_>Oldestkon написал(а):Лучше сохранять время, когда анимация начинает идти, а после вычислять значение альфа-канала исходя из разницы между текущим и сохраненным временем.
Всякие тикеры будут привязаны к фпс, и в итоге везде анимация будет выглядеть по-разному.
Допустим:
Код:long startTime; onGuiOpened(...) { startTime = System.currentTimeMillis(); } ... long deltaTime = System.currentTimeMillis() - startTime; long animationDuration = 1000L; //появление за 1 секунду double alphaMult = (deltaTime*1D)/(animationDuration*1D); //чтобы точно перевело в double alphaMult = Math.max(0, Math.min(1, alphaMult)); //ограничиваем диапазон значений переменной от 0 до 1 GL11.glColor4d(1, 1, 1, alphaMult); ... <отрисовка изображения>
public void drawScreen(int par1, int par2, float par3) {
long startTime;
startTime = System.currentTimeMillis();
long deltaTime = System.currentTimeMillis() - startTime;
long animationDuration = 1000L;
double alphaMult = (deltaTime*1D)/(animationDuration*1D);
alphaMult = Math.max(0, Math.min(1, alphaMult));
GL11.glPushMatrix();
this.bind(tost);
GL11.glColor4d(1, 1, 1, alphaMult);
...
int k = 5;
int l = 5 - k;
"А ПОЧЕМУ l НОЛЬ?77";
Как например нажимаешь кнопку и скажем переменной boolean num задается ture и при следующем нажатии (после отпускания (следующий вызов)) задается false?Meowt написал(а):И заодно сразу другой вопрос - каким образом можно из переменной, которая постоянно обновляется, вытащить и зафиксировать ее значение при вызове определенного метода? Например, есть переменная num, у которой постоянно изменяется значение (1,2,3,4,5...n). При вызове lol() переменной fixnum задается значение num (например, 4) и не изменяется до следующего вызова lol().Да, я умею объяснять.
int num;
int fixnum;
//тут мы изменяем num (для наглядности)
public void numChange(int change)
{
num = change;
}
public void lol()
{
fixnum = num;
}
Или можно как-то по-другому? На счет цвета понял только как прозрачность черного менять, для других цветов понятия не имею.Meowt написал(а):Теперь мне интересно, каким образом можно сделать плавное появление для кнопок и надписей? Надписи - менять прозрачность цвета, кнопки - комбинация варианта с изображением и прозрачностью цвета, правильно?