ТОМ: Уроки: различия между версиями
ASBer (обсуждение | вклад) |
ASBer (обсуждение | вклад) |
||
| Строка 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.чей = ГГ
}
//помещаем ГГ в комнату
пещера + ГГ
ГГ.полное_описание = "ты старый зеленый гоблин, морщины времени залегли на твоём лице глубокими складками."
ГГ.персонаж_по_месту = "здесь ты думаешь о смысле жизни"
Результат:
Моя первая игра В этой игре вы узнаете о истории любви и ненависти, а также постигните смысл жизни. Пещера Это пещера, в которой ты прожил большую часть своей жизни. Мебели нет совсем, но где-то здесь ты зарыл клад. > осмотри свою пещеру Волшебная пещера. Здесь ты думаешь о смысле жизни. > осмотри себя Ты старый зеленый гоблин, морщины времени залегли на твоём лице глубокими складками. > осмотри себя Ты выглядишь как обычно.