Основы команд и блоков - TrueCat17/Ren-Engine GitHub Wiki

Сценарий, интерфейсы и вообще всё, связанное с игрой, пишется в rpy-файлах. Эти файлы содержат в себе блоки (init, label и screen), а блоки содержат команды или другие блоки.


Команда

Состоит из имени команды и её параметров, разделённых пробелом. Например:

show np smile
# show - сама команда
# np smile - её параметры
pause 5
# pause - команда
# 5     - параметр

Параметр паузы (как и некоторых других команд) интерпретируется питоном, поэтому если взять его в скобки (или в 3 пары скобок), то ничего не изменится:

# писать так не рекомендуется, но это работает:
pause (5)
pause (((4 + 1)))

И раз ничего не меняется, то и пробел не игнорируется. Где-то он не нужен, а где-то - необходим:

pause(5) # неправильно: pause - команда, а не функция питона, нужен разделительный пробел
pause 5 # правильно

# $ - команда, параметры которой воспринимаются как код питона
$ pause 5 # неправильно: в питоне pause - функция, а не команда
$ pause(5) # правильно

Эта ошибка встречается относительно часто. В том числе и в таком виде:

x = 0 # неправильно: не существует команды x, которой передавались бы параметры "= 0"
$x = 0 # неправильно: не существует команды $x

$ x = 0 # правильно: $ - команда, сообщающая, что её параметры - код для питона
# питон приравняет x к 0

Блок

Спец. команда, которая имеет свои внутренние команды или блоки, исполняющиеся последовательно. Вложенные элементы имеют на 1 табуляцию больше, строка заголовка блока должна оканчиваться двоеточием (:). Например:

label start: # основной блок, отступ - 0, в конце - двоеточие
	# вложенные в блок label команды, отступ на 1 больше, 0 + 1 = 1
	scene bg room
	show rn smile
	rn "Привет!"
	
	# random.random() даёт случайное число от 0 до 1
	if random.random() < 0.5: # вложенный в label _блок_, снова двоеточие в конце
		# команды, вложенные в if, отступ на 1 больше, 1 + 1 = 2
		show rn normal with dspr
		rn "Итак, о чём будет наша новая игра?"

Далее ->
<- Назад

⚠️ **GitHub.com Fallback** ⚠️