« Previous entry | Next entry » Browse > Bad code
Skip to comments (3)
lua module
Posted by Futaba on Jun 22 2009 @ 22:18 :: 644 unique visits
{Текущий этап -функция GEtPos - проблема с указателем на GLscene1
}
unit LuaEngine;
interface
uses GLScene, lua, lualib, lauxlib, Dialogs,sysutils;
type
TGLuaEngine = class
private
public
constructor Create(Owner: TObject);
function luaExec(Str: PAnsiChar):boolean;
function PushScene(Scene: TGLSCene):boolean;
end;
var luaVM:Plua_State;
SceneObjects: TGLScene;
implementation
function TGLuaEngine.luaExec(Str: PAnsiChar):boolean;
begin
try
lua_dofile(luaVM,Str);//Выполняем то что передано в строке
Result:=true;
except
Result:=false;
end;
end;
function TGLuaEngine.PushScene(Scene: TGLScene):boolean;
begin
try
SceneObjects:=Scene;
except
Exit;
end;
end;
function kill_player(lua_VM:Plua_State):Integer; cdecl; //ЭТО ПРОСТО ТЕСТ ФУНКЦИЯ
var O_name: string;
X, Y: single;
begin
///O_name:=lua_tostring(lua_VM, 1); //Принимаем первый аргумент
X:=lua_tonumber(lua_VM, 1); //Принимаем второй аргумент
Y:=lua_tonumber(lua_VM, 2); //Принимаем третий аргумент
///Form1.GLScene1.FindSceneObject(O_name).Position.X:=X; //Устанавливаем объекту позицию по Х
///Form1.GLScene1.FindSceneObject(O_name).Position.Z:=Z; //Устанавливаем объекту позицию по Z
ShowMessage('Lua Func is complited with: ' +floattostr(X)+', ' + floattostr(Y) );
//lua_pushnumber(luaVM, 0.005); //Отправляем в стек lua значение
Result:= 1; //Помечаем, что был отправлен в стек только 1 результат
end;
function GetPos(lua_VM:Plua_State):Integer; cdecl;
var O_name: string;
X, Y, Z: single;
begin
O_name:=lua_tostring(lua_VM, 1); //Принимаем первый аргумент
//X:=lua_tonumber(lua_VM, 2); //Принимаем второй аргумент
//Y:=lua_tonumber(lua_VM, 3); //Принимаем третий аргумент
//Z:=lua_tonumber(lua_VM, 4); //Принимаем fourth аргумент
try
X:=SceneObjects.FindSceneObject(O_name).Position.X; //Устанавливаем объекту позицию по Х
Y:=SceneObjects.FindSceneObject(O_name).Position.Y; //Устанавливаем объекту позицию по Х
Z:=SceneObjects.FindSceneObject(O_name).Position.Z; //Устанавливаем объекту позицию по Х
except
ShowMessage('Object not found!');
end;
///Form1.GLScene1.FindSceneObject(O_name).Position.Z:=Z; //Устанавливаем объекту позицию по Z
ShowMessage(O_name + ': ' +floattostr(X)+', ' + floattostr(Y)+', ' + floattostr(Z) );
//lua_pushnumber(luaVM, 0.005); //Отправляем в стек lua значение
Result:= 1; //Помечаем, что был отправлен в стек только 1 результат
end;
constructor TGLuaEngine.Create(Owner: TObject);
begin
luaVM:=lua_open;
if (lua_open=nil)then Showmessage('Ошибка запуска Lua!');
luaL_openlibs(luaVM);
//registering lua functions
lua_register(luaVM, pchar('kill_player'), kill_player);
lua_register(luaVM, pchar('GetPos'), GetPos);
end;
end.
3 comments posted so far
Add your own »
2. On Jul 14 2009 @ 10:33 guest wrote:
AVI to DVD Converter,AVI to DVD Creator,iPhone Ringtone Maker for Mac,AVI Converter OS X,VOB Converter OS X,AVCHD Video Converter,FLV Converter,PowerPoint Converter,AVCHD Converter,Blue-Ray ripper,Rip Blue Ray,FLV to MOV Mac,VOB to DVD,HD Video Converter,iPod Playlist Transfer3. On Jan 05 2010 @ 15:23 uggbaileybutton wrote:
bailey button uggs-ugg boots cheap
ugg boots uk
ugg classic
1. On Jul 14 2009 @ 03:57 guest wrote:
buy wow goldmy wow power leveling
buy wow gold
good wow power leveling
BUY wow gold
my wow power leveling
CHEAP rs gold
cheap wow power leveling
CHEAPEST lotro gold
MY aion gold
buy wow gold
cheap wow gold
CHEAPEST wow gold