Онлайн-справочник по самым часто задаваемым вопросам из темы "Как сделать?" на форуме QSP.su
10.1. Для чего нужен оператор `REFINT`, и как он работает?
В: Для чего нужен оператор `REFINT`, и как он работает?
О:
О том, для чего нужен оператор `REFINT`, и как он работает, прямо написано в справке:
`REFINT` — обновление интерфейса (а также смена цветов, шрифта, назначенных с помощью системных переменных `BCOLOR`, `FCOLOR`, `LCOLOR`, `FSIZE`, `$FNAME`).
И ещё:
Обновление настроек интерфейса происходит 2 раза в секунду (автоматически, по умолчанию), либо с помощью оператора `REFINT`. Также см. оператор `SETTIMER`.
Таким образом, оператор `REFINT` нужен для принудительного обновления настроек интерфейса.
Есть ещё комментарий от разработчика:
`REFINT` принудительно выводит на экран текст, который находится в буфере вывода
Это говорит о том, что перед тем, как вывести на экран текст, плеер помещает его в буфер, и только потом (после выполнения кода локации) выводит на экран. `REFINT` позволяет не только обновить настройки интерфейса, но и вывести часть текста, уже помещённую в буфер, на экран.
Чтобы лучше понять, что делает `REFINT`, напишите игру с таким кодом, и покликайте на действия:
showobjs 0
act "меняем настройки без refint":
showstat 1
bcolor=rgb(0,88,0)
loop local i=0 while i<10000000 step i+=1:
! пустой цикл
end
end
act "меняем настройки c refint":
showobjs 1
bcolor=rgb(0,88,88)
refint
loop local i=0 while i<10000000 step i+=1:
! пустой цикл
end
end
Не удивляйтесь подвисанию игры при клике по действию — цикл из десяти миллионов итераций выполняется долго.