Skip to content

Основы команд и блоков

TrueCat17 edited this page Apr 4, 2023 · 1 revision

Сценарий, интерфейсы и вообще всё, связанное с игрой, пишется в 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 "Итак, о чём будет наша новая игра?"

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

Основы
Если вы новичок, то будет достаточно прочитать лишь это, пока ваш энтузиазм не исчерпан.
Остальное можно будет прочесть по мере надобности.

  1. Быстрый старт!
  2. Основы команд и блоков.
  3. Простейшие примеры.
  4. Изображения.
  5. Музыка и звуки.

Документация по RPG-части находится здесь.


Более сложные вещи
Через некоторое время вам, возможно, потребуются более продвинутые возможности.

  1. Функции для изображений (im-функции).
  2. Эффекты.
  3. Времена суток.
  4. ATL (анимации и трансформации).
  5. Ввод с клавиатуры.
  6. Введение в ScreenLang (GUI, интерфейс).
  7. Конфигурирование игры.

Дополнительно


Перед самым началом
Советы для новичков и не только.


Оффтоп.

Clone this wiki locally