ИнформАрхив QSP

Плавное изменение цвета фона [1.0]

Это устаревшая статья!

Плавное изменение цвета фона может придать Вашей игре больше атмосферности. Так же, это снизит напряжение на глаза при смене цвета фона (по сравнению с резким).

Функция будет называться !coloring и вызываться так:

gs '!coloring',200,200,200

Где три числа соответственно цвета RGB от 0 до 255.

Код локации !coloring

!Вызов функции с передачей 3-х аргументов, это 3 цвета RGB
!Рекомендуется посылать значения кратные 5
r2 = ARGS[0]    
g2 = ARGS[1]    
b2 = ARGS[2]
!Начало цикла
:!color
        
!Всего 3 блока для каждого цвета. 
if r1 < r2:        
    r1=r1 + 5    
!Значения должны быть кратные 5. Если хочется любые, то "+5" следует заменить на "+1" и "-5" на "-1"
elseif r1 >r2:
    r1=r1 - 5
end

if g1 < g2:
    g1=g1 + 5    
elseif g1 >g2:
    g1=g1 - 5
end

if b1 < b2:
    b1=b1 + 5
elseif b1 >b2:
    b1=b1 - 5
end
!Установка цвета фона
bcolor = rgb(r1,g1,b1) 
!Проверка, достигнут ли нужный цвет?
if r1 = r2 and g1 = g2 and b1 = b2 :
    r1=r2
    g1=g2
    b1=b2
else:
    wait TIMEOFWAIT
    jump '!color'
end

ВНИМАНИЕ!

Не забывайте, что нужно задать отличным от 0 TIMEOFWAIT и устанавливать цвет текста тёмным или светлым в зависимости от светлого-тёмного фона командой:

fcolor (200,200,200)

где в скобках цвета в RGB

Примечание: использование WAIT а не локации-счётчика COUNTER обусловлено тем, что подразумевается, что смена цвета будет происходить быстро (рекомендуемое время TIMEOFWAIT = 5). Если автор хочет сделать плавную смену дня и ночи, лучше будет воспользоваться COUNTER`ом.

Автор: ANTIPOD

20.05.2011 09:23

Оригинал статьи: Плавное изменение цвета фона 1.0