typos and cleanups in manual.tex
This commit is contained in:
parent
8ac8b67edd
commit
8bf7587a45
|
@ -17,7 +17,7 @@
|
||||||
\tableofcontents
|
\tableofcontents
|
||||||
\clearpage
|
\clearpage
|
||||||
\section{Введение}
|
\section{Введение}
|
||||||
Данный справочник написан в предположении, что читатель знаком с основами объектно-ориентированного программирования.
|
Данный справочник написан в предположении, что читатель знаком с основами объектно - ориентированного программирования.
|
||||||
|
|
||||||
Игры для движка STEAD пишутся на языке \href{http://www.lua.org}{Lua} версии 5.1 (то есть, последней на данный момент). Знание этого языка будет очень полезным при написании игр, но я постараюсь сделать описание настолько подробным, что даже новичок в этом языке смог создавать игры для INSTEAD без проблем. Между прочим, знающим Lua будет небезынтересно посмотреть код движка.
|
Игры для движка STEAD пишутся на языке \href{http://www.lua.org}{Lua} версии 5.1 (то есть, последней на данный момент). Знание этого языка будет очень полезным при написании игр, но я постараюсь сделать описание настолько подробным, что даже новичок в этом языке смог создавать игры для INSTEAD без проблем. Между прочим, знающим Lua будет небезынтересно посмотреть код движка.
|
||||||
|
|
||||||
|
@ -39,7 +39,7 @@
|
||||||
\index{Инвентарь}
|
\index{Инвентарь}
|
||||||
Игрок имеет собственный \textbf{инвентарь}. В нём лежат объекты, доступные на любой сцене. Чаще всего инвентарь рассматривают как некую <<котомку>>, в которой лежат объекты; в этом случае каждый объект считают предметом. Такая трактовка практична, обыденна и интуитивна; но не единственна. Понятие инвентаря является условным, ведь это лишь контейнер. В нём могут находиться такие объекты, как <<открыть>>, <<потрогать>>, <<лизнуть>>. Можно наполнить его объектами <<нога>>, <<рука>>, <<мозг>>. Автор игры свободен в определении этих понятий, но он также должен определить действия игрока над ними.
|
Игрок имеет собственный \textbf{инвентарь}. В нём лежат объекты, доступные на любой сцене. Чаще всего инвентарь рассматривают как некую <<котомку>>, в которой лежат объекты; в этом случае каждый объект считают предметом. Такая трактовка практична, обыденна и интуитивна; но не единственна. Понятие инвентаря является условным, ведь это лишь контейнер. В нём могут находиться такие объекты, как <<открыть>>, <<потрогать>>, <<лизнуть>>. Можно наполнить его объектами <<нога>>, <<рука>>, <<мозг>>. Автор игры свободен в определении этих понятий, но он также должен определить действия игрока над ними.
|
||||||
|
|
||||||
На рисунке \ref{INSTEAD-running} очень чётко видны границы между этими областями. Главное окно имеет бежевый фон\footnote{Поправьте меня,если я неправ; в описании главного окна нет инвентаря}, инвентарь --- чёрный.Динамическая часть идёт сразу после ссылок перехода и выделена курсивом; статическая часть отпечатана обычным шрифтом.
|
На рисунке \ref{INSTEAD-running} очень чётко видны границы между этими областями. Главное окно имеет бежевый фон\footnote{Поправьте меня, если я неправ; в описании главного окна нет инвентаря}, инвентарь --- чёрный. Динамическая часть идёт сразу после ссылок перехода и выделена курсивом; статическая часть отпечатана обычным шрифтом.
|
||||||
|
|
||||||
Действиями игрока могут быть:
|
Действиями игрока могут быть:
|
||||||
|
|
||||||
|
@ -252,7 +252,7 @@ put(new [[obj {nam = 'test' } ]]);
|
||||||
put(new('myconstructor()');
|
put(new('myconstructor()');
|
||||||
\end{verbatim}
|
\end{verbatim}
|
||||||
|
|
||||||
Созданный объект будет попадать в файл сохранения. \verb/new()/ возвращает реальный объект; чтобы получить его имя,если это нужно, используйте функцию \index{Функции!deref} \verb/deref()./
|
Созданный объект будет попадать в файл сохранения. \verb/new()/ возвращает реальный объект; чтобы получить его имя, если это нужно, используйте функцию \index{Функции!deref} \verb/deref()./
|
||||||
|
|
||||||
\section{Некоторые манипуляции с объектами}
|
\section{Некоторые манипуляции с объектами}
|
||||||
|
|
||||||
|
@ -406,7 +406,7 @@ room2 = room {
|
||||||
return goto('main');
|
return goto('main');
|
||||||
\end{verbatim}
|
\end{verbatim}
|
||||||
|
|
||||||
Почему здесь написано \verb/return/? Дело в том, что функция \verb/goto()/ не является безусловным переходом,как можно подумать. Она возвращает описание новой сцены, поэтому почти всегда должна завершать работу обработчика таким нехитрым способом.
|
Почему здесь написано \verb/return/? Дело в том, что функция \verb/goto()/ не является безусловным переходом, как можно подумать. Она возвращает описание новой сцены, поэтому почти всегда должна завершать работу обработчика таким нехитрым способом.
|
||||||
|
|
||||||
\textbf{\textcolor{red}{НО: }}Если вы выполните goto из обработчика exit, то получите переполнение стека, так как goto снова и снова будет вызывать метод exit. Вы можете избавиться от этого, если вставите проверку, разрушающую рекурсию. Например:
|
\textbf{\textcolor{red}{НО: }}Если вы выполните goto из обработчика exit, то получите переполнение стека, так как goto снова и снова будет вызывать метод exit. Вы можете избавиться от этого, если вставите проверку, разрушающую рекурсию. Например:
|
||||||
|
|
||||||
|
@ -598,7 +598,7 @@ phr('a', 'b', [[ pon() ]]);
|
||||||
\item[here()] \index{Функции!here} возвращает текущую сцену
|
\item[here()] \index{Функции!here} возвращает текущую сцену
|
||||||
\item[where()] \index{Функции!where} возвращает сцену в которой помещен объект (если он был добавлен с использованием функций put, drop, move)
|
\item[where()] \index{Функции!where} возвращает сцену в которой помещен объект (если он был добавлен с использованием функций put, drop, move)
|
||||||
\item[from()] \index{Функции!from} возвращает прошлую сцену
|
\item[from()] \index{Функции!from} возвращает прошлую сцену
|
||||||
\item[ref(nam)] \index{Функции!ref} возвращает указанный объект: \begin{verbatim}ref('home') == home\end{verbatim}. nam может быть функцией, строкой или текстовой ссылкой
|
\item[ref(nam)] \index{Функции!ref} возвращает указанный объект: \begin{verbatim}ref('home') == home\end{verbatim} nam может быть функцией, строкой или текстовой ссылкой
|
||||||
\item[deref(object)] \index{Функции!deref} возвращает ссылку строкой для объекта: \begin{verbatim}deref(knife) == 'knife'\end{verbatim}
|
\item[deref(object)] \index{Функции!deref} возвращает ссылку строкой для объекта: \begin{verbatim}deref(knife) == 'knife'\end{verbatim}
|
||||||
\item[have(object)] \index{Функции!have} проверяет, есть ли объект в инвентаре по имени объекта или по его nam
|
\item[have(object)] \index{Функции!have} проверяет, есть ли объект в инвентаре по имени объекта или по его nam
|
||||||
\item[move(from, where, from)] \index{Функции!move} переносит объект из текущей сцены в другую
|
\item[move(from, where, from)] \index{Функции!move} переносит объект из текущей сцены в другую
|
||||||
|
@ -707,7 +707,7 @@ mycat = obj {
|
||||||
Вы можете вернуть из обработчика life второй код возврата, важность. (true или false). Если он равен true, то возвращаемое значение будет выведено ДО описания объектов; по умолчанию значение равно false.
|
Вы можете вернуть из обработчика life второй код возврата, важность. (true или false). Если он равен true, то возвращаемое значение будет выведено ДО описания объектов; по умолчанию значение равно false.
|
||||||
|
|
||||||
\index{Переменные!ACTION\_TEXT}
|
\index{Переменные!ACTION\_TEXT}
|
||||||
Если вы хотите <<очистить экран>>, то можно воспользоваться вот каким хаком. Из метода \verb/life/ доступна переменная \verb/ACTION_TEXT/ --- это тот текст, который содержит реакцию на действие игрока. Соответственно, сделав \verb/ACTION_TEXT = nil/,можно <<запретить>> вывод реакции. Например,для перехода на конец игры можно сделать:
|
Если вы хотите <<очистить экран>>, то можно воспользоваться вот каким хаком. Из метода \verb/life/ доступна переменная \verb/ACTION_TEXT/ --- это тот текст, который содержит реакцию на действие игрока. Соответственно, сделав \verb/ACTION_TEXT = nil/, можно <<запретить>> вывод реакции. Например, для перехода на конец игры можно сделать:
|
||||||
|
|
||||||
\begin{verbatim}
|
\begin{verbatim}
|
||||||
ACTION_TEXT = nil
|
ACTION_TEXT = nil
|
||||||
|
|
Reference in a new issue