ТОМ2 - платформа для парсерных игр

Объявление

Открыт сайт tom2-game.ru.


Последнюю версию платформы можно скачать здесь.

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » ТОМ2 - платформа для парсерных игр » Документация » Уроки для ТОМ2


Уроки для ТОМ2

Сообщений 1 страница 4 из 4

1

Поехали!
Урок 1

Код:
//Урок 1: комментарии, управляющие теги, секции, операции вывода, вычисления в тексте.
//Уроки программирования

//Комментарии, управляющие теги, секции, операции вывода, вычисления в тексте.
//Это комментарий. Строка комментария не выводится на экран. 
//Однострочный комментарий всегда начинается знаками "//".



//теги
<clear><p>Платформа ТОМ позволяет использовать как стандартные теги HTML, так и собственные теги.</p>
<p>В набор собственных управляющих тегов ТОМа входят: <ul><li>< location ></li><li>< pause ></li><li>< clear ></li></ul></p>
<br>

<p>Текст, помещенный внутри тега < location >, выводится в верхнюю часть экрана (см. заголовок урока).
_В игре в этой области обычно отображается описание локации.</p>
//Пример:
<location><h2>Урок 1</h2>
<h3>Тема: комментарии, управляющие теги, секции, операции вывода, вычисления в тексте.</h3>
</location>

<pause><p>Тег < pause > позволяет выводить текст отдельными порциями, ожидая нажатия клавиши или клика мышки.</p>
<pause> 

<p>Тег < clear > очищает экран от накопленного текста.</p>
<pause><clear>



//секции
<location><h2>Секции</h2></location>
<p>Секция - это часть кода игры, отделённая чертой. Есть 3 вида секций:
<ul>
<li>код:         -------------------</li>
<li>текст:       ===================</li>
<li>комментарий: *******************</li>
</ul></p>


********************************************************
Секция комментария позволяет писать удобные
многострочные комментари, когда это необходимо. 
Сеция комментария полностью игнорируется платформой.

========================================================
<pause><p>Секция текста полностью выводится на экран.
<br>Это может быть удобно для вывода больших описаний.</p>

--------------------------------------------------------
%<pause>секция кода содержит исполняемый код на языке TOML. 
%%для вывода текста из этой секции используются операторы % и %%.



//вычисления в тексте
========================================================
<pause><clear><location><h2>Вычисления в тексте</h2></location>
<p>Кроме тегов в текст можно включать вычисляемые выражения, заключая их в фигурные скобки.<br>
Пример: 2 + 2 = {2 + 2}.<br>
Выражения рассчитываются и вставляются в текст вместо фигурных скобок.</p>


<pause><clear><location><h2>Урок 1</h2></location>Конец урока.

Для запуска скопировать в файл и запустить командой run <filename>

2

Круто! Отличный метод подачи материала прямо в исходнике. Можно не только почитать, но и сразу выполнить и посмотреть как это работает. Великолепно!

3

Урок 2:

Код:
//Урок 2: Минимально необходимый код игры. Локации и объекты.
//Уроки программирования

<clear>
<location><h2>Урок 2</h2>
<h3>Тема: Минимально необходимый код игры. Локации и объекты.</h3>
</location>


<p>В этом примере мы создадим игру из одной комнаты, одного персонажа и одного предмета.
Это совсем немного кода, но при этом все стандартные действия в этой минималистичной игре должны работать.</p>
<pause>

---------------------------------------------------------------------
location комната //создаём комнату
{ //декорации, используемые в сцене
  property окно = "обычное окно (декорация)"
  property дверь = "обычная дверь (декорация)"
  
  //объекты внутри локации
  человек {pers = this} //создаём персонажа
  собака {}             //создаём NPC
  книга {}              //создаём предмет
  
  //добавим описание сцены
  ==_сцена =================
  <location>
  <h3>Комната</h3>
  <p>Ты находишься в небольшой комнате с окном и дверью. Здесь есть книга и собака.</p>
  </location>
}

=====================================================================
<clear><p>Игра создана!
Попробуйте взять книгу, потрогать окно, или сделать что-нибудь еще.</p>


*********************************************************************
КОНЕЦ УРОКА
P.S. На этом урок можно и закончить, но в книге должен быть текст.
Давайте его добавим тоже:
---------------------------------------------------------------------
книга._текст = "<h2>Пояснения к коду урока</h2>
Все создаваемые в этом уроке объекты автоматически привязываются к библиотечным классам.
Свойства объектов не заданы, их значения берутся из стандартной библиотеки, поэтому все объекты здесь стандартные, т.е. никакие =)
В дальнейших уроках мы подробно рассмотрим важные свойства объектов и их изменение.

<pause><h3>глава 1 Создание локации</h3>
Формат создания локации: 
<font color=blue>location loc_name\{ конструктор и секции локации \}</font>
или
<font color=blue>локация loc_name\{ конструктор и секции локации\}</font>

где
location/локация - ключевое слово;
loc_name - программное имя (идентификатор) создаваемой локации;
конструктор - код, описывающий локацию;
секции - методы локации.

Имя локации совпадает с библиотечным классом 'комната', поэтому локации автоматически назначается этот класс.

<pause><h3>глава 2 Декорации</h3>
Свойства локации типа 'строка' могут вести себя как объект, если имя свойства совпадает с каким-либо классом.
Действия с такими 'объектами' сильно ограничены, по сути своей это декорации.
Декорации нужны чтобы не создавать лишних объектов, но при этом поддержать интерактивность предметов, упомянутых в описании.
В данной локации у нас задано 2 декорации: дверь и окно.
В библиотечном классе 'комната' есть еще несколько декораций, поэтому в игре есть стены, пол и потолок.

<pause><h3>глава 3 Объекты внутри локации</h3>
Формат создания объектов: 
<font color=blue>object obj_name\{ конструктор и секции объекта \}</font>
или
<font color=blue>объект obj_name\{ конструктор и секции объекта \}</font>
или
<font color=blue>class_name obj_name\{ конструктор и секции объекта \}</font>
или
<font color=blue>class_name\{ конструктор и секции объекта \}</font>

где
object/объект - ключевое слово;
obj_name - программное имя (идентификатор) объекта;
class_name - имя класса, к которому привязывается объект;
конструктор и секции в данном примере отсутствуют.

Если имя класса совпадает с именем объекта, повторять его не обязательно (см. 4 вариант)

Чтобы игрок мог играть, ему нужно передать управление каким-либо объектом так: <font color=blue>pers = this</font>

<pause><h3>глава 4 Секция ==_сцена==</h3>
В предыдущем уроке были подробно рассмотрены различные типы секций.
В этом уроке у нас появилась первая именованная секция - ==_сцена==.
Именованные секции выполняют роль методов, их можно вызывать по их именам.
Некоторые имена зарезервированы для нужд платформы. Так секция ==_сцена== вызывается после выполнения каждой команды, чтобы отобразить изменения, произошедшие в текущей локации.
В нашем примере секция выводит статичный текст, т.к. в локации ничего никогда не изменяется.

<pause>Конец"

Для запуска скопировать в файл и запустить командой run <filename>

P.S. Полноценно урок будет работать в версии 2.a.4.5 и выше.

4

Обновил текст уроков в связи с выходом версии 2.a.4.5


Вы здесь » ТОМ2 - платформа для парсерных игр » Документация » Уроки для ТОМ2