- Вывод текста
- Программирование
- Оформление
- Расширенные возможности
- Нюансы написания игр под разные плееры
-
- x AeroQSP
- Утилиты и средства разработки
Это старая версия документа.
"Менюшные" игры с точки зрения геймплея, как правило, предоставляют игроку на выбор несколько вариантов действий, которыми он может воспользоваться. Выбрав действие, игрок двигает игру дальше по сюжету, и волне возможно, главный герой при этом совершает описанное действие. Например, съедает кусок пирога, или проникает в чужой сад.
Обычно действия отделены от основного описания и представляют собой ряд кликабельных кнопок. В QSP для размещения действий есть отдельное окно, оно так и называется Окно действий, или Список действий (в плеере просто Действия). С этим окном, в зависимости от нужд вашей игры, вы можете проделывать разные манипуляции. Вы можете:
В названиях действий не важен регистр букв, то есть "Пойти" и "поЙти" - одно и то же действие.
При создании действия, весь код, относящийся к действию, "прикрепляется" к этому действию, но не выполняется. Этот код будет выполнен только тогда, когда игрок нажмёт на действие (щёлкнет по нему мышью).
SHOWACTS [#выражение]
- если значение выражения отлично от 0, то показывает Список действий, иначе скрывает его. Пример:showacts 0 & ! скрываем Окно действий showacts 1 & ! выводим Окно действий на экранДля удобства чтения кода можно заранее определить переменные
on
и off
с соответствующими значениями:on,off = 1,0 showacts on & ! включаем окно дополнительного описания showacts off & ! выключаем окно дополнительного описания
ACT
— данная команда добавляет в Окно действий кнопку действия.ACT [$название], [$путь к файлу изображения]: {оператор 1} & {оператор 2} & {оператор 3}Здесь
[$название]
— это надпись (название), которая будет выводиться на кнопке действия, а [$путь к файлу изображения]
— путь к файлу изображения, которое так же будет выводиться на кнопке действия перед названием.ACT
и название, и операторы после двоеточия при такой форме записи должны быть записаны в одну строку.[$путь к файлу изображения]
может отсутствовать, при этом действие добавится без изображения.ACT [$название], [$путь к файлу изображения]: {оператор 1} {оператор 2} {оператор 3} ENDЗдесь точно так же будет создано действие с названием
[$название]
, перед названием будет выводиться изображение, путь к которому мы указали с помощью параметра [$путь к файлу изображения]
, а когда игрок нажмёт на действие, будут выполнены перечисленные операторы. Обратите внимание:ACT
не должно быть ничего.END
или END ACT
.! действие в однострочной форме записи act "Сорвать с берёзы яблоко": яблоко+=1 & *pl "Вы сорвали яблоко, спелое белое." ! действие в многострочной форме записи, с изображением act "Сорвать арбуз с куста","img/watermelon.png": арбуз+=1 *pl "Вы сорвали арбуз с куста" end
DELACT [$название]
- удаляет действие с указанным названием из списка действий на локации. Если действие с указанным названием не существует, ошибки не будет, плеер просто проигнорирует команду. Примеры:! удаляем действие с конкретным названием delact 'Идти вперед' ! удаляем выделенное действие delact $selact
CLA
- очистка списка текущих действий (удаление всех действий из окна действий). Пример:! это действие при нажатии выведет текст act "Действие 1": *pl "Ехал Грека Через Реку" end ! это действие при нажатии выведет текст и удалится act "Действие 2": *pl "Видит Грека В Реке Рак" delact $selact end ! это действие при нажатии удалит все действия act "Очистить окно действий": cla end
CLS
- эквивалентно конструкции "CLEAR & *CLEAR & CLA & CMDCLEAR
", т.е. очищает все окна кроме списка предметов.$CURACTS
- данная функция возвращает текущий список действий в виде QSP-кода.ACT
с ответствующими параметрами и операциями.! записываем текущие действия в переменную $actlist=$curacts ! восстанавливаем действия из переменной dynamic $actlist
$SELACT
- данная функция возвращает название выделенного действия в любом месте игры. Пример:act "Съесть яблоко": *pl "Это было очень вкусное яблоко. Жаль, что червивое." здоровье=здоровье+100 delact $selact end
Когда вы наводите курсор мыши на действие, в классическом плеере это действие подсвечивается голубым цветом, и это означает, что действие выделено. При этом функция $SELACT
, вызванная в любом месте игры, будет возвращать название такого выделенного действия.
Выделение действия — это событие, к которому вы можете привязать автоматическое выполнение кода. Делается это с помощью системной переменной $ONACTSEL
:
$ONACTSEL
— системная переменная, куда можно прописать название локации, код на которой будет выполняться при очередном выделении действия.Более подробная информация в разделе "Служебные локации".
Каждое действие в QSP вляется отдельным блоком кода, и потому для него можно назначить локальные переменные. Таким образом можно проводить различные расчёты внутри действия, не затрагивая переменные на локации.
яблоки=245 act "Наколдовать яблоки": local яблоки яблоки=val($input('Сколько вам нужно яблок?')) яблоки_у_Миши+=яблоки *pl "Наколдовано яблок: <<яблоки>>" end act "Сколько яблок на локации?": ! это действие работает с глобальной переменной *pl "Яблок на локации: <<яблоки>>" end
[:ogranichenija]
act "Действие 1": *pl "Старое действие." act "Действие 1": *pl "Новое действие."