Перейти к основному содержимому

10.10. Как сделать плавное появление текста?

В: Как сделать плавное появление текста? Как сделать плавное изменение цвета фона? Как сделать плавное изменение цвета текста?

О: Чтобы создать у игрока видимость плавного проявления текста, необходимо изначально задать одинаковый цвет и тексту и фону, а затем постепенно изменять значения цвета в сторону нужного.

Ниже, в качестве примера, приведён код проявления чёрного текста на белом фоне для локации-счётчика:

! заданные изначально (например при переходе на локацию) составляющие

! font['red']=255 & font['green']=255 & font['blue']=255 & ! составляющие цвета шрифта
! bg['red']=255 & bg['green']=255 & bg['blue']=255 & ! составляющие цвета фона
! fcolor=rgb(font['red'],font['green'],font['blue'])
! bcolor=rgb(bg['red'],bg['green'],bg['blue'])
! Текст будет проявляться примерно за 600 мс, нужно выставить settimer

! settimer 20

! чтобы код не выполнялся даже когда текст полностью проявится, переменной count['font']
! будет присвоена единица. Чтобы запустить выполнение кода, нужно присвоить этой переменной ноль

! count['font']=0

! непосредственно код


if count['font']=0:
! если коду разрешено выполняться

! при каждом обращении к локации-счётчику вычитаем из значения составляющих цвета шрифта по 8

font['red']-=8
font['green']-=8
font['blue']-=8
! если значения достигли нуля, то они не могут опуститься ниже

if font['red']<1: font['red']=0
if font['green']<1: font['green']=0
if font['blue']<1: font['blue']=0
! так же если значения достигли нуля, значит больше коду незачем выполняться

if font['red']<1 and font['green']<1 and font['blue']<1: count['font']=1
! каждое обращение к локации-счётчику необходимо менять цвет шрифта

fcolor=rgb(font['red'],font['green'],font['blue'])
! обновляем настройки интерфейса

refint
! не забываем закрывать многострочные условия

end

Чтобы изменять скорость проявления текста, можно менять период обращения к локации-счётчику через settimer, или заменить восьмёрку в моменте вычитания числа из составляющих на более подходящее число.

Задачи по плавному изменению цвета фона, или текста решаются аналогичным образом.

Использовать подобный код непосредственно на любой другой локации или в действии, в сочетании с wait, не рекомендуется, поскольку это намертво подвешивает игру. Многих игроков подобные "повисания" раздражают.