fixes, in doc, in stead

This commit is contained in:
p.kosyh 2010-03-09 17:46:33 +00:00
parent 790088896a
commit 9d091a4c61
3 changed files with 53 additions and 1 deletions

View file

@ -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.

View file

@ -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 версии интерпретатора будет создана консоль отладки.

View file

@ -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