Registriert seit: 6. Mär 2011
98 Beiträge
Delphi 6 Professional
|
Threads und LUA parser
23. Apr 2012, 16:11
Hallo,
Ich schreibe gerade ein Spiel und es soll so sein, dass man für jedes Level ein LUA Script schreiben kann, das zu beginn des Levels ausgeführt wird. Über Funktionen kann das Script dann mit dem Game und der Welt interagieren z.B. wenn Spielposition = xy dann öfnen Tür oder so.
Mein Problem ist ich muss das Script und die anderen Sachen wie "input", "update", "draw" parallel ausführen denn im Script wird es vermutlich immer einen While-Schleife geben in der geprüft wird ob was gemacht werden muss.
Dazu habe ich mir gedacht ich mach einfach 2 Threads die sich dann einmal um das Script und einmal um das Game und die Grafik kümmern.
Ich brauche in meinem Parser Thread nur leider auch einige Funktionen die "sychronized" ausgeführt werden müssen nur wenn ich die dann bei dem lua parser registriere:
lua_register(L, 'getPlayerPos', lua_getPlayerPos);
dann bekomme ich den Fehler das lua_getPlayerPos ja eine Methode und keine Prozedur wäre ich muss die jedoch als Methode haben damit ich sie "sychronized" ausführen kann!!
ALSO:
Was kann ich tun?
Gibt es eine andere Möglichkeit?
Kann ich das vielleicht auch ohne Threads machen und dann die Ausführung von lua_dofile() zeitlich begrenzen sodass ich ihm sage berechne jetzt 5ms das Script brich dann ab mach was anderes und setzt das Script nachher fort?
Ich hab schon daran gedacht es so zu machen das das Script ohne While Schleife aufgebaut werden muss und dann jeden Tick (100ms oder so) neu ausgeführt werden soll.
PS: Ich bin eig. erst beim Level Editor aber ich muss so etwas vllt. jetzt schon für später berücksichtigen.
Gruß roboter202
Christian i := 0 ; While i = 0 do beep ;
Geändert von roboter202 (23. Apr 2012 um 16:15 Uhr)
Grund: R3cTscHreibf3h1er
|