# Редактор сценариев

Приложения KDE могут управляться из других приложений, из командной строки, или с помощью DBus. &kstars; предоставляет набор расширений, позволяющих лучше контролировать изображение с помощью сценариев. Эти возможности позволяют, например, создавать демонстрации иллюстрирующие основные концепции астрономии.

Написание DBus-скриптов вс`-таки является программированием, что может отпугнуть тех, у кого нет опыта программирования. Редактор сценариев предоставляет графический интерфейс (GUI) для конструирования DBus-сценариев &kstars;, что сильно упрощает написание сценариев.

## Введение в редактор сценариев

Перед тем как подробно описывать как пользоваться редактором сценариев, прочтите небольшое вступление обо всех компонентах графического интерфейса. Для более подробной информации воспользуйтесь функцией "справка".

Редактор сценариев
Редактор сценариев

На рисунке ниже представлен редактор сценариев. Панель слева -- Текущий скрипт;там показаны команды, которые вы уже включили в сценарий. Панель справа -- Браузер функции; там показан список всех доступных функций. Ниже браузера функций расположена небольшая панель, в которой содержится краткое описание функции выбранной в браузере. Панель ниже текущего скрипта -- Аргументы функций; где вы можете изменить аргументы функции выделенной в текущем скрипте.

Вверху расположен ряд кнопок, которые оперируют со сценарием как с целым: это (слева на право) Создать скрипт, Открыть скрипт, Сохранить скрипт, Сохранить скрипт как..., и Тестировать скрипт. Значение этих кнопок очевидны, за исключением, может быть, последней. Нажав на кнопку Тестировать скрипт вы запустите его в главном окне &kstars;. Отодвиньте окно Редактора сценариев в сторону, перед тем как нажимать эту кнопку, чтобы увидеть результат выполнения сценария.

В центре окна расположены кнопки, которые работают с отдельными функциями сценария. Это (сверху вниз): Добавить функцию, Удалить функцию, Копировать функцию, Выше, и Ниже. Добавить функцию -- добавляет выделенную в браузере функцию в текущий сценарий (вы также можете добавить функцию дважды щёлкнув на её названии мышью). Остальные кнопки оперируют с функциями выделенными в текущем сценарии, т.е. позволяют удалять их, копировать, изменять их положение.

## Использование Редактора сценариев

В качестве иллюстрации использования редактора сценариев, мы приведём небольшой пример, где сделаем скрипт, который покажет след Луны, пока часы симуляции идут в ускоренном режиме.

Прежде чем нарисовать след Луны, нужно привязать к ней экран. Для этого используем функцию lookToward. выделите эту функцию в списке справа, и обратите внимание, что описание этой функции появилось в панели ниже. Нажмите кнопку Добавить функцию , чтобы добавить функцию к текущему сценарию. Теперь в панели Аргументы функций появился выпадающий список направление, где вы можете выбрать направление, на которое будет привязан экран. В выпадающем списке содержаться только направления света, но нет объектов, таких как, например, Луна. Вы можете ввести имя объекта (Луна) в выпадающий список вручную, или воспользоваться окном Поиск объекта нажав кнопку Объект. Заметьте, если вы привязали экран к объекту, то автоматически начинается слежение за объектом, таким образом нет необходимости добавлять функцию setTracking перед lookToward.

Итак, теперь экран центрирован на Луну, следующим шагом мы хотим ускорить время. Для этого используйте функцию setClockScale. Добавьте её в сценарий, одним из описанных выше методов. После этого на панели Аргументы функций появиться окошечко счётчика, с помощью которого вы можете установить требуемую скорость течения времени симуляции. Установите скорость на 3 часа.

Итак, мы привязали экран к Луне и ускорили время. теперь мы просто хотим приостановить исполнение сценария. Добавьте функцию waitFor и установите паузу на 20с., используя панель Аргументов функций.

В завершение, установим скорость течения времени 1с. Добавьте ещё один экземпляр setClockScale, и установите значение аргумента - 1с.

Однако, в приведённом сценарии есть один недостаток. Мы должны сперва убедиться, что для отрисовки используются Экваториальные координаты, прежде чем начнём следить за Луной. Если используются Горизонтальные координаты, то на экране вы увидите очень быстрое вращение небесной сферы. Чтобы этого не произошло, установите параметр вида UseAltAz в false. Чтобы изменить какой-либо параметр вида, используйте функцию changeViewOption. Добавьте эту функцию к сценарию, и обратите внимание на панель аргументов функций. Здесь есть выпадающий список, содержащий все параметры вида. Так как мы точно знаем название опции, то мы можем просто выбрать её из списка. Если вы не знаете название необходимой опции, нажмите на кнопку Просмотреть дерево, чтобы открыть окно, которое показывает опции по разделам. Кроме того, рядом с каждой опцией содержится краткое описание, за что она отвечает, и тип аргументов и их предельные значения. Так опцию UseAltAz мы найдём в разделе Настройка звёздного неба. Выберите опцию и нажмите кнопку OK, после этого опция будет выбрана в выпадающем списке в панели аргументов функций. Наконец в поле Значение, наберите false или 0.

Ещё один шаг: изменение опции UseAltAz в конце сценария не принесёт желаемого результат; мы должны изменить эту опцию в начале сценария. Для этого убедитесь что выделена нужная функция в панели текущий скрипт, и нажимайте кнопку Выше, до тех пор, пока функция не окажется вверху.

Теперь, когда сценарий написан, нужно сохранить его на диск. Для этого нажмите кнопку Сохранить скрипт. Сперва откроется окно, где вам предложат ввести название сценария и ваше имя, как имя автора. Для примера, в качестве названия сценария введите Слежение за луной, и своё имя в поле автор, и нажмите OK. После этого откроется стандартный диалог &kde; Сохранить файл. Введите название файла, и нажмите OK, чтобы сохранить сценарий. Заметьте, что если имя файла НЕ оканчивается .kstars, то этот суффикс будет добавлен автоматически. Если вы чувствуете себя опытным пользователем, вы можете отредактировать сценарий вручную, с помощью любого текстового редактора.

Готовый сценарий, можно запустить множеством способов. Из командной строки можно запустить только если &kstars; уже запущен. Также вы можете запустить сценарий из &kstars; с помощью пункта Запустить сценарий, меню Файл.