Skip to content

Latest commit

 

History

History
47 lines (34 loc) · 3.16 KB

Scripts.md

File metadata and controls

47 lines (34 loc) · 3.16 KB

Скрипты в Twine Wonder

В тексте узла можно писать встроенные скрипты на JavaScript с помощью двойных фигурных скобок:

{{
    console.log("Hello from my Script)";
}}

Содержимое внутри скобок будет выполнено в момент, когда локация должна будет отобразиться на экране.

Если начать с {{=, то результат работы скрипта будет выведен прямо в текст. Это лучше всего работает с одиночными переменными или с выражениями.

{{=
   2+2 
}}

Вывод в текст работает только для одиночных переменных, функций или выражений.

Wonder команды

Для сохранения, загрузки, музыки и прочих интересных возможностей можно использовать специальные команды объекта Wonder

this или контекст действия скрипта

В игре есть состояние игры - так называемый gameState. По умолчанию это пустой объект. При создании переменных или с помощью ваших скриптов его можно наполнить переменными (как полями объекта). Для этого надо использовать this. как обращение к объекту - так как Wonder передает gameState как контекст всем исполняемым скриптам.

В стартовом JavaScript-скрипте в Twine-редакторе можно задать, к примеру, количество золота так

this.gold = 100;

В стартовом скрипте не нужно писать фигурные скобки.

Далее, в текстовых локациях можно писать прямо в текст

{{  
    this.chestGold = 50;
    this.gold += this.chestGold;
}}
Вы открыли сундук. В нем лежало {{=this.chestGold}} золота. Теперь у вас {{this.gold}} золота.

Все скрипты выполняются каждый раз, когда вы открываете локацию с ними. Вы можете использовать любой JavaScript-код, который может работать в браузере. Вы можете обращаться к window, document и другим объектам DOM API.

Вы можете создавать свои собственные состояния и объекты для игры - но gameState, к которому вы можете обращаться через this, удобен тем, что он будет использовать при автоматическом сохранении и восстановлении, а также в других возможных механизмах Wonder.