ТОМ: Уроки: различия между версиями

Материал из IFВики
Перейти к навигации Перейти к поиску
Содержимое удалено Содержимое добавлено
Строка 60: Строка 60:


Далее создаём первую локацию в нашей игре:
Далее создаём первую локацию в нашей игре:
location комната_ГГ
location пещера
{ cls = место
{ cls = место
Строка 66: Строка 66:
В этом тексте:
В этом тексте:
*'''location''' - зарезервированное слово указывающее категорию создаваемого объекта;
*'''location''' - зарезервированное слово указывающее категорию создаваемого объекта;
*'''комната_ГГ''' - программное имя нашей локации. Именно так мы будем обращаться к объекту локации из кода игры;
*'''пещера''' - программное имя нашей локации. Именно так мы будем обращаться к объекту локации из кода игры;
*'''{ }''' - текст в фигурных скобках служит описанием созданного объекта;
*'''{ }''' - текст в фигурных скобках служит описанием созданного объекта;
*'''cls = место''' - выражение, указывающее класс созданного объекта;
*'''cls = место''' - выражение, указывающее класс созданного объекта;
Строка 91: Строка 91:
%В этой игре вы узнаете о истории любви и ненависти, а также постигните смысл жизни.
%В этой игре вы узнаете о истории любви и ненависти, а также постигните смысл жизни.
//создаём основную локацию
//создаём основную локацию
location комната_ГГ
location пещера
{ cls = место
{ cls = место
}
}
//помещаем ГГ в комнату
//помещаем ГГ в пещеру
комната_ГГ + ГГ
пещера + ГГ


После запуска этого файла должно получиться что-то подобное:
После запуска этого файла должно получиться что-то подобное:
Строка 102: Строка 102:
В этой игре вы узнаете о истории любви и ненависти, а также постигните смысл
В этой игре вы узнаете о истории любви и ненависти, а также постигните смысл
жизни.
жизни.
Пещера
Комната ГГ
Это некоторое место - комната ГГ. Ты находишься тут.
Это некоторое место - пещера. Ты находишься тут.
Обратите внимание, что "комната ГГ" выделяется красным цветом. Это говорит о том, что мы не задали внешнее наименоваие для локации и вместо него используется внутреннее имя.
Обратите внимание, что "пещера" выделяется красным цветом. Это говорит о том, что мы не задали внешнее наименоваие для локации и вместо него используется внутреннее имя.
Но тем неменее уже сейчас можно опробывать некоторые команды. Так как в комнате ничего нет, максимум что мы можем, это осмотреться, осмотреть себя и заглянуть в свой инвентарь:
Но тем неменее уже сейчас можно опробывать некоторые команды. Так как в пещере ничего нет, максимум что мы можем, это осмотреться, осмотреть себя и заглянуть в свой инвентарь:
> осмотрись
> осмотрись
Это некоторое место - комната ГГ. Ты находишься тут.
Это некоторое место - пещера. Ты находишься тут.
> осмотри себя
> осмотри себя
Строка 117: Строка 117:
Попробуем заменить стандартные скучные описания своими собственными:
Попробуем заменить стандартные скучные описания своими собственными:
//создаём основную локацию
//создаём основную локацию
location комната_ГГ
location пещера
{ cls = место
{ cls = место
title = "комнат%; ЖрЕчНдСи; Ип; Ип=а; Рп=ы; Дп=е; Вп=у; Тп=ой; Пп=е;"
title = "пещер%; ЖрЕчНдСи; Ип; Ип=а; Рп=ы; Дп=е; Вп=у; Тп=ой; Пп=е;"
this.полное_описание = "Это комната, в которой ты прожил большую часть своей сознательной жизни. Мебели почти нет, старые обои почти выцвели."
this.полное_описание = "Это пещера, в которой ты прожил большую часть своей жизни. Мебели нет совсем, но где-то здесь ты зарыл клад."
this.описание = "твоя комната"
this.описание = "волшебная пещера"
this.чей = ГГ
this.чей = ГГ
}
}
//помещаем ГГ в комнату
//помещаем ГГ в комнату
комната_ГГ + ГГ
пещера + ГГ
ГГ.полное_описание = "молодой человек не совсем опрятной наружности в старой и не совсем чистой майке"
ГГ.полное_описание = "ты старый зеленый гоблин, морщины времени залегли на твоём лице глубокими складками."
ГГ.персонаж_по_месту = "здесь ты думаешь о смысле жизни"
ГГ.персонаж_по_месту = "здесь ты думаешь о смысле жизни"
Результат:
Результат:
Строка 132: Строка 132:
В этой игре вы узнаете о истории любви и ненависти, а также постигните смысл
В этой игре вы узнаете о истории любви и ненависти, а также постигните смысл
жизни.
жизни.
Пещера
Комната
Это комната, в которой ты прожил большую часть своей сознательной жизни. Мебели
Это пещера, в которой ты прожил большую часть своей жизни. Мебели нет совсем, но
где-то здесь ты зарыл клад.
почти нет, старые обои почти выцвели.
> осмотри свою комнату
> осмотри свою пещеру
Твоя комната. Здесь ты думаешь о смысле жизни.
Волшебная пещера. Здесь ты думаешь о смысле жизни.
> осмотри себя
> осмотри себя
Ты старый зеленый гоблин, морщины времени залегли на твоём лице глубокими складками.
Молодой человек не совсем опрятной наружности в старой и не совсем чистой майке.
> осмотри себя
> осмотри себя

Версия от 14:41, 15 октября 2009

Для выполнения уроков Вам понадобится стандартная библиотека из Пакета библиотек ТОМ.

После распаковки библиотеки свои файлы рекомендуется размещать в каталоге \Libs4TOM , относительно которого в примерах указаны все пути.

Урок 1: Комментарии, вывод текста, запуск игры

ТОМ проигрывает обычные планарные текстовые файлы, редактировать которые можно в любом блокноте.

Для удобства запуска расширение файла можно поменять на .tom, но это не обязательно, можно оставить .txt


И так, у нас есть новый, чистый, только что созданный файл "my_game.tom", открытый в блокноте.


В любой игре обязательно встречаются комментарии, которые никак не влияют на выполнение программы, но при этом очень важны.

В ТОМе комментарии начитаются со знаков "//" и продолжаются до конца строки.

Пример:

//этот текстовый файл - моя первая игра


Для того чтобы вывести на экран любую текстовую строку используется оператор "%". Все символы, следующие после % и до конца строки будут показаны игроку.

Пример:

//выводим название игры и вводную часть
%Моя первая игра
%В этой игре вы узнаете о истории любви и ненависти, а также постигните смысл жизни.


После сохранения файла его можно открыть в плеере ТОМ. Сделать это можно несколькими способами:

1. Запустить плеер \Libs4TOM\Bin\constom.exe, в нём набрать команду >run и в открывшемся диалоге выбрать файл my_game.tom

2. Для запуска игры создать .bat - файл с командой из одной строки: Bin\constom.exe my_game.tom

3. Привязать расширение .tom к файлу \Libs4TOM\Bin\constom.exe средствами операционной системы Windows


Если после запуска игры любым способом в окне плеера вы увидите:

Моя первая игра
В этой игре вы узнаете о истории любви и ненависти, а также постигните смысл жизни.

первый урок можно считать успешно пройденным.

Урок 2: Первая локация и главный герой

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

Также необходимо описание места в котором действует главный герой. В текстовых квестах все пространство игры традиционно разбивается на локации. Нам для начала необходима хотя бы одна локация.

Так как ТОМ использует объектно-ориентированной язык программирования, всё что нам необходимо должно быть описано как объекты. Для того чтобы не писать все объекты с нуля, мы воспользуемся модулем стандартной библиотеки main.tml , который содержит необходимые нам классы объектов.

Первое что требуется - это подключить модуль main.tml к нашей игре. Это мы сделаем командой:

//подключим основной модуль стандартной библиотеки
include "std.lib\main.tml"

которую вставим в самое начало нашего файла.


Далее создаём первую локацию в нашей игре:

location пещера
{ cls = место

}

В этом тексте:

  • location - зарезервированное слово указывающее категорию создаваемого объекта;
  • пещера - программное имя нашей локации. Именно так мы будем обращаться к объекту локации из кода игры;
  • { } - текст в фигурных скобках служит описанием созданного объекта;
  • cls = место - выражение, указывающее класс созданного объекта;
    • cls - зарезервированное слово, использующееся для доступа к классу объекта;
    • = - оператор присвоения значения;
    • место - класс, определенный в модуле main.tml и описывающий самые общие свойства локаций.


Далее разберемся с главным героем.

В модуле main.tml уже создан объект с именем ГГ, подходящий на роль главного героя. Всё что нам требуется - это поместить ГГ в нашу комнату:

комната_ГГ + ГГ

Оператор "+" примененный к двум объектам помещает объект справа в тот объект что слева от оператора.

В данном случае мы добавили ГГ в комнату_ГГ


Итого, у нас должно получиться:

//подключим основной модуль стандартной библиотеки
include "std.lib\main.tml"
//выводим название игры и вводную часть
%Моя первая игра
%В этой игре вы узнаете о истории любви и ненависти, а также постигните смысл жизни. 
//создаём основную локацию 
location пещера
{ cls = место

}
//помещаем ГГ в пещеру
пещера + ГГ

После запуска этого файла должно получиться что-то подобное:

Моя первая игра
В этой игре вы узнаете о истории любви и ненависти, а также постигните смысл
жизни.
Пещера
Это некоторое место - пещера. Ты находишься тут.

Обратите внимание, что "пещера" выделяется красным цветом. Это говорит о том, что мы не задали внешнее наименоваие для локации и вместо него используется внутреннее имя. Но тем неменее уже сейчас можно опробывать некоторые команды. Так как в пещере ничего нет, максимум что мы можем, это осмотреться, осмотреть себя и заглянуть в свой инвентарь:

> осмотрись
Это некоторое место - пещера. Ты находишься тут.

> осмотри себя
Ты выглядишь как обычно.

> инвентарь
У тебя ничего нет.

Попробуем заменить стандартные скучные описания своими собственными:

//создаём основную локацию 
location пещера
{ cls = место
  title = "пещер%; ЖрЕчНдСи; Ип; Ип=а; Рп=ы; Дп=е; Вп=у; Тп=ой; Пп=е;"
  this.полное_описание = "Это пещера, в которой ты прожил большую часть своей жизни. Мебели нет совсем, но где-то здесь ты зарыл клад."
  this.описание = "волшебная пещера"
  this.чей = ГГ
}
//помещаем ГГ в комнату
пещера + ГГ
ГГ.полное_описание = "ты старый зеленый гоблин, морщины времени залегли на твоём лице глубокими складками."
ГГ.персонаж_по_месту = "здесь ты думаешь о смысле жизни"

Результат:

Моя первая игра
В этой игре вы узнаете о истории любви и ненависти, а также постигните смысл
жизни.
Пещера
Это пещера, в которой ты прожил большую часть своей жизни. Мебели нет совсем, но
где-то здесь ты зарыл клад.

> осмотри свою пещеру
Волшебная пещера. Здесь ты думаешь о смысле жизни.

> осмотри себя
Ты старый зеленый гоблин, морщины времени залегли на твоём лице глубокими складками.

> осмотри себя
Ты выглядишь как обычно.