Lua Variablen ?

Übersicht BlitzMax, BlitzMax NG Allgemein

Gehe zu Seite Zurück  1, 2

Neue Antwort erstellen

Ratchet

BeitragSo, Jun 03, 2007 10:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich kann nur sagen, kauft euch das Buch (welches übring von einem der Lua Entwickler selber geschrieben wurde) und/oder schaut euch die Tutorials an. Dann ist das mit Lua auch alles nicht mehr so schwer. Ich finde sogar das Lua total einfach ist, man muss nur einmal das System der Stackverarbeitung verstanden haben.
Auch wenn das mit dem Stack doof ist wie einige meinen, so bleibt Lua aber dadurch eine der flexibelsten Umgebungen.
[iMac 27"] [3,4GHz Intel Core i5 ] [8GB Ram] [NVIDIA GeForce GTX 775M 2GB] [MacOS X Yosemite] [BlitzMax + MaxGui] [Monkey X Pro]

TheShadow

Moderator

BeitragSo, Jun 03, 2007 11:28
Antworten mit Zitat
Benutzer-Profile anzeigen
ich hab gerade miniD gefunden:

http://en.wikipedia.org/wiki/MiniD

außerdem eine Liste mit solchen skriptsprachen:

http://en.wikipedia.org/wiki/S..._languages
AMD64 3500+ | GeForce6600GT 128MB | 1GB DDR | WinXPsp2

Wild-Storm

BeitragSo, Jun 03, 2007 16:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Also sorry, ich habs irgendwie noch nicht ganz kapiert. Es gibt keine gescheite Möglichkeit mit einer Funktion in BMax einfach den Vert einer Variable eines Scripts herauszufinden beziehungsweise eine benuzerdefinierte Funktion einen Return Wert an Lua auszugeben?
Also dass "ichbineineluafunktion("123")" 123 ausgibt und nicht "function: 09312"

mfg

edit:// Okay, hab grad einiges kapiert. Also einer in BMax erstellten zusätzlichen LUA Funktion (ihr wisst schon, seo.addfunction()) kann mein einen Wert mit seo.ReturnNumberToLua(123) zurückgeben lassen.
So, jetzt kann man ja den Wert einer Variable bekommen, indem man den Index hat. Aber wenn man jetzt den Index nicht hat, wie geht das dann?
Visit http://www.next-dimension.org
-------------------------------------------------
Freeware Modelle, Texturen & Sounds:
http://www.blitzforum.de/forum...hp?t=12875

Ratchet

BeitragMo, Jun 04, 2007 8:07
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
Also sorry, ich habs irgendwie noch nicht ganz kapiert. Es gibt keine gescheite Möglichkeit mit einer Funktion in BMax einfach den Vert einer Variable eines Scripts herauszufinden


Siehe mein Beispiel mit lua_getglobal

Zitat:
So, jetzt kann man ja den Wert einer Variable bekommen, indem man den Index hat. Aber wenn man jetzt den Index nicht hat, wie geht das dann?


Der Index ist keine Laufende Nummer. Immer wenn du z.B. lua_getglobal aufrufst landen die Infos im Stack und das Ganze fängt immer bei -1 an. Es geht um den Index im Stack, nicht um einen globalen Index welche die Variable hat.

Wie Reaper schon gepostet hat kann man sich selber Funktionen bauen um den Inhalt von Variablen zu bekommen.

Code: [AUSKLAPPEN]
Function Lua_GetVarNum(L, varname$ )
   lua_getglobal(L, varname$)
   If lua_isnumber(L, -1) = 1 then Return lua_tonumber(L, -1)
End Function


Nochmal zur Verdeutlichung:

lua_getglobal(L, varname$) <------ Wert der Variable varname$ in den Stack schreiben; ist der Stack leer steht der Wert an Position/Index -1. Leeren kann man den Stack übrings mit lua_settop (L, 0).

If lua_isnumber(L, -1) = 1 then Return lua_tonumber(L, -1) <-------- Schauen ob Index -1 im Stack ein nummerischer Wert ist und ihn aus dem Stack rausholen (lua_tonumber)

Wie ich weiter oben schon erwähnt hatte ist es auch möglich alle Variablen durchzuscrollen (for Schleife) und deren Typ, Wert usw rauszubekommen. Hab ich jetzt nicht gepostet da keiner nach geschrien hat ^^
[iMac 27"] [3,4GHz Intel Core i5 ] [8GB Ram] [NVIDIA GeForce GTX 775M 2GB] [MacOS X Yosemite] [BlitzMax + MaxGui] [Monkey X Pro]

TheShadow

Moderator

BeitragMo, Jun 04, 2007 20:42
Antworten mit Zitat
Benutzer-Profile anzeigen
ich frage mich immer noch ob man dann die pop-funktion nach getglobal benutzen muß ???
AMD64 3500+ | GeForce6600GT 128MB | 1GB DDR | WinXPsp2

Ratchet

BeitragDi, Jun 05, 2007 8:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Um einen "sauberen" Stack zu garantieren sollte man schon sowas wie das hier machen:

Code: [AUSKLAPPEN]
lua_pop( L, lua_gettop( L ) )
[iMac 27"] [3,4GHz Intel Core i5 ] [8GB Ram] [NVIDIA GeForce GTX 775M 2GB] [MacOS X Yosemite] [BlitzMax + MaxGui] [Monkey X Pro]

Gehe zu Seite Zurück  1, 2

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group