LUA für BMax

Übersicht BlitzMax, BlitzMax NG Allgemein

Gehe zu Seite Zurück  1, 2

Neue Antwort erstellen

bruZard

BeitragMo, Feb 14, 2005 10:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Dass LUA case-sensitive ist, ist tatsächlich ein riesiges Ärgernis. Besonders weil man den unbedarften Usern verklickern muss dass sie die Funktionen, die man selbst implementiert hat, haargenau so eintippern wie man es dokumentiert hat. Macht man bei der Doku einen Fehler funktioniert der ganze Kram auch wieder nicht.

Die Laufzeit eines Scripts beschränken wird wohl nicht gehen, wenn der User so dusselig ist und eine Endlosschleife produziert ... lass ihn einfach machen.

[EDIT]
So einfach wie Du es darstellst ist es nicht Suco-X. LUA ist für den Core zuständig, er verwaltet den Stack und viele andere lustige Sachen. Mit LUAScript ist dann das Interface für die direkte Kommunikation mit dem Client.
[/EDIT]
PIV 2,4GHz - 1GB DDR 333 - ATI Radeon9600 - WinXP - DX9.0c - BMax 1.14 - B3D 1.91 - 1280x1024x32

User posted image

Suco-X

Betreff: .......

BeitragMo, Feb 14, 2005 15:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:

[EDIT]
So einfach wie Du es darstellst ist es nicht Suco-X. LUA ist für den Core zuständig, er verwaltet den Stack und viele andere lustige Sachen. Mit LUAScript ist dann das Interface für die direkte Kommunikation mit dem Client.
[/EDIT]


Versteh nicht ganz auf was du da hinaus willst bzw. was du mir sagen willst!?

Um das Case sensitive Zeug habe ich mir auch nochmal Gedanken gemacht.
Man könnte ja die ganze File aufrufen,alles verkleinern,abspeichern,mit Lua öffnen. So wäre das mit dem Case Sensitive schonmal vom Tisch.
Die Commands die Lua selbst hat (If..While..Usw.) sind sowieso alle schon klein gehalten.
Mfg Suco
Intel Core 2 Quad Q8300, 4× 2500 MHz, 4096 MB DDR2-Ram, GeForce 9600GT 512 MB

bruZard

BeitragMo, Feb 14, 2005 16:07
Antworten mit Zitat
Benutzer-Profile anzeigen
Hmm, daran habe ich noch garnicht gedacht ... allerdings musst Du den Kram nicht extra nochmal speichern. Du kannst mit SetScriptText() und RunScript direkt den gelesenen String an LUA übergeben und ausführen lassen.

Nochwas zum LUA Core als "Configurator". Folgendes Beispiel finde ich recht schön um zu verdeutlichen wir weit das mit dem Werteparsing geht:
Code: [AUSKLAPPEN]

lua_getglobal(L, "background");
    if (!lua_istable(L, -1))
      error(L, "`background' is not a valid color table");
   
    red = getfield("r");
    green = getfield("g");
    blue = getfield("b");

In diesem Fall ein C-Beispiel, es zeigt aber sehr schön die Verwendung von Feldern und dem abfangen von Laufzeitfehlern.

Und dass das LUA Modul nicht nur dazu gedacht ist Konfig-Dateien zu parsen erkennt man, wenn man sich anschaut wie Funktionen aufgerufen werden können die in LUA definiert worden sind. Was einem Game SDK widerum auf die Füße hilft wenn man dem User erlauben möchte eigene Funktionen zu schreiben.

[EDIT]
Totaler Blödsinn was ich hier erzählt habe.
Ich habe mir den Kram nochmal angeguckt und entdeckt das LUAScript eigentlich nur ein Wrapper ist. Er versteckt die Funktionalität des LUA Moduls und vereinfacht das erstellen eines Interfaces für BMax Funktionsaufrufe. Man kann nämlich auch alles nur mit dem LUA Modul machen indem man den Stack selbst füllt und per lua_call auf die gewünschten Funktionen zugreift.
[/EDIT]
PIV 2,4GHz - 1GB DDR 333 - ATI Radeon9600 - WinXP - DX9.0c - BMax 1.14 - B3D 1.91 - 1280x1024x32

User posted image

DivineDominion

BeitragMo, Feb 14, 2005 19:38
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich lese es aber ich verstehe es nicht. Was willst du uns damit sagen und was da ist nun LUAScript (was für "wrapper"?!) und was meinst du mit LUA? das Modul? Was für Stackzeug?
christian.tietze@gmail.com - https://christiantietze.de
macOS

bruZard

BeitragMo, Feb 14, 2005 19:45
Antworten mit Zitat
Benutzer-Profile anzeigen
Es gibt zwei Module. Einmal LUA und einmal LUA-Script. Wenn man die Samples nur kurz überfliegt könnte man zum Schluss komen dass das Modul LUA.mod nur für Konfigurationsdateien zu gebrauchen ist und LuaScript.mod für Funktionsaufrufe in BMax.
Dem ist aber nicht so. Für gewöhnlich gibt es bei Lua nur eine Schnittstelle (Lua.mod). Das Modul LuaScript.mod wurde erstellt um komplexe Vorgänge zu kapseln die man unternehmen müsste um Lua zu erlauben bspw. Funktionen der "Client-Engine" aufzurufen.

Wie das ohne das LuaScript Modul geht weiß ich noch nicht 100%ig, aber laut lua.org ist dem so. Das Sample "direct_luademo1.bmx" zeigt wie das geht.
PIV 2,4GHz - 1GB DDR 333 - ATI Radeon9600 - WinXP - DX9.0c - BMax 1.14 - B3D 1.91 - 1280x1024x32

User posted image

Gehe zu Seite Zurück  1, 2

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group