fixes, in doc, in stead
This commit is contained in:
parent
790088896a
commit
9d091a4c61
|
@ -1053,6 +1053,32 @@ main = room {
|
|||
};
|
||||
</code>
|
||||
|
||||
==== Dynamic object creation ====
|
||||
You can use ''new'' и ''delete'' functions to create and remove dynamic objects. An example follows.
|
||||
|
||||
<code>
|
||||
new ("obj { nam = 'test', act = 'test' }")
|
||||
put(new [[obj {nam = 'test' } ]]);
|
||||
put(new('myconstructor()');
|
||||
n = new('myconstructor()');
|
||||
delete(n)
|
||||
</code>
|
||||
|
||||
''new'' treats its string argument as an object constructor. The constructor must return an object. Thus, the string argument usually contains a constructor function call. For example:
|
||||
<code>
|
||||
function myconstructor()
|
||||
local v = {}
|
||||
v.nam = 'test object',
|
||||
v.act = 'test feedback',
|
||||
return obj(v);
|
||||
end
|
||||
</code>
|
||||
The object created will be saved every time the game is saved. ''new()'' returns a real object; to get its name you can use ''deref'' function:
|
||||
<code>
|
||||
o_name = deref(new('myconstructor()'));
|
||||
delete(o_name);
|
||||
</code>
|
||||
|
||||
==== Debugging ====
|
||||
To see lua call stack during an error, launch sdl-instead with “-debug” parameter. In Windows version debugging console will be created.
|
||||
|
||||
|
|
|
@ -1035,6 +1035,32 @@ main = room {
|
|||
};
|
||||
</code>
|
||||
|
||||
==== Динамическое создание объектов ====
|
||||
Вы можете использовать функции new и delete для создания и удаления динамических объектов. Примеры:
|
||||
|
||||
<code>
|
||||
new ("obj { nam = 'test', act = 'test' }")
|
||||
put(new [[obj {nam = 'test' } ]]);
|
||||
put(new('myconstructor()');
|
||||
n = new('myconstructor()');
|
||||
delete(n)
|
||||
</code>
|
||||
|
||||
new воспринимает строку-аргумент как конструктор объекта. Результатом выполнения конструктора должен быть объект. Таким образом в аргументе обычно задан вызов функции-конструктора. Например:
|
||||
<code>
|
||||
function myconstructor()
|
||||
local v = {}
|
||||
v.nam = 'тестовый объект',
|
||||
v.act = 'Тестовая реакция',
|
||||
return obj(v);
|
||||
end
|
||||
</code>
|
||||
Созданный объект будет попадать в файл сохранения. new() возвращает реальный объект; чтобы получить его имя, если это нужно, используйте функцию deref:
|
||||
<code>
|
||||
o_name = deref(new('myconstructor()'));
|
||||
delete(o_name);
|
||||
</code>
|
||||
|
||||
==== Отладка ====
|
||||
Для того, чтобы во время ошибки увидеть стек вызовов функций lua, вы можете запустить sdl-instead с параметром -debug. При этом в windows версии интерпретатора будет создана консоль отладки.
|
||||
|
||||
|
|
|
@ -1660,7 +1660,7 @@ iface = {
|
|||
end
|
||||
|
||||
if v == false then
|
||||
return fmt(r), false;
|
||||
return cat(fmt(r),'\n'), false;
|
||||
end
|
||||
|
||||
ACTION_TEXT = r; -- here, life methods can redefine this
|
||||
|
|
Reference in a new issue