Показать сообщение отдельно
Старый 17.05.2021, 10:30   #320
Asura
Модератор
 
Аватар для Asura
 
Регистрация: 28.02.2007
Адрес: Тула, Россия
Сообщений: 1,864
По умолчанию

плавность перемещения делается так (пример затемнения прицела Зеро):

private Variables setOld = new Variables();
private Variables setNew = new Variables();

в public boolean tick()

setTmp = setOld; setOld = setNew; setNew = setTmp;

if(cockpitDimControl) {
if(setNew.dimPosition>0) setNew.dimPosition = setOld.dimPosition-0.05f;
}else {
if(setNew.dimPosition<1) setNew.dimPosition = setOld.dimPosition+0.05f;
}

в reflectWorldToInstruments

mesh.chunkSetAngles("sunOFF", 0.0f, cvt(interp(setNew.dimPosition, setOld.dimPosition, delta), 0.0f, 1.0f, 0.0f, -77.0f), 0.0f);

переменная setNew.dimPosition плавно изменяется за счет формулы setNew.dimPosition = setOld.dimPosition-0.05f в процедуре tick

и мешь двигается плавно. меняя значение прироста переменной можно регулировать скорость перемещения.
__________________
Их восемь — нас двое. Расклад перед боем
Не наш, но мы будем играть!
Серёжа! Держись, нам не светит с тобою,
Но козыри надо равнять.

© В. Высоцкий
__________________

Asura вне форума   Ответить с цитированием