Инструменты пользователя

Инструменты сайта


Боковая панель

help:realtime

Это старая версия документа.


Назад: Работа с файлами, использование модулей

Реальное время

  • WAIT [#миллисекунды] - остановка выполнения программы на заданное количество миллисекунд (1 секунда = 1000 миллисекунд).
  • MSECSCOUNT - возвращает количество миллисекунд, прошедших с момента начала игры.

События в реальном времени. Таймер

В QSP есть возможность выполнять код через определённые промежутки времени — для этого используется локация-счётчик.

Чтобы локация-счётчик заработала, необходимо внести её название в служебную переменную $COUNTER. Например, если ваша локация-счётчик называется «Счётчик», на самой первой локации в игре нужно написать:

$COUNTER='Счётчик'
Как правило, чтобы не путаться, локацию называют так же, как и служебную переменную —«Counter»:
$COUNTER='Counter'

Затем на созданной локации-счётчике пишут код, который должен выполняться через определённые промежутки времени.

По-умолчанию, код на локации-счётчике выполняется каждые пол секунды (500 миллисекунд). Но это значение можно изменить, использовав оператор SETTIMER:

! устанавливает период выполнения кода
! на локации-счётчике в 100 миллисекунд
SETTIMER 100
Комбинируя возможности операторов, функций и локации-счётчика, можно задавать множество событий, выполняемых в реальном времени. Для примера приведён код локации-счётчика, который будет выводить строки текста одну за одной каждые полторы секунды:
settimer 20
if стихотворение=0:
	if время_первая_строка=0:
		время_первая_строка=msecscount+1500
	end
	if msecscount>=время_первая_строка:
		*pl 'Веленью совести, о Муза, будь послушна!'
		стихотворение=1
	end
end
if стихотворение=1:
	if время_вторая_строка=0:
		время_вторая_строка=msecscount+1500
	end
	if msecscount>=время_вторая_строка:
		*pl 'Обиды не страшась, не требуя венца,'
		стихотворение=2
	end
end
if стихотворение=2:
	if время_третья_строка=0:
		время_третья_строка=msecscount+1500
	end
	if msecscount>=время_третья_строка:
		*pl 'Хвалу и клевету приемли равнодушно'
		стихотворение=3
	end
end
if стихотворение=3:
	if время_четвёртая_строка=0:
		время_четвёртая_строка=msecscount+1500
	end
	if msecscount>=время_четвёртая_строка:
		*pl 'И не оспаривай глупца.'
		стихотворение=4
	end
end

Реализация времени в игре

help/realtime.1493997651.txt.gz · Последние изменения: 2017/05/05 15:20 — aleks_versus