Ich verwende eine Grafikbibliothek, mit der Sie in Lua programmieren können. Ich habe ein Bedürfnis für die A * pathfinding Bibliothek, also fand ich eine online. Es ist nur 1 Lua-Datei, die Pfadfindung und 1 Beispieldatei. In der Beispieldatei wird das Objekt wie folgt verwendet:
%Vor%Ich führe das Skript und alles funktioniert. Jetzt füge ich die Astar.lua-Datei zum Pfad hinzu, auf dem meine Grafik-Engine läuft, und mache das Gleiche und erhalte den Fehler in der Astar-Zeile (map, 1):
"versuchen, den lokalen 'AStar' (einen Zahlenwert) aufzurufen
Irgendwelche Ideen, warum ich diesen Fehler bekommen würde, wenn ich dasselbe mache wie das Beispiel, das mit dieser AStar-Lib geliefert wird?
Hier ist ein kleiner Teil der AStar-Datei
%Vor%Beachte also, dass wenn ich das von meiner Grafik-Engine aus starte, es 1 zurückgibt, aber wenn es aus dem Beispiel kommt, dass es mit geliefert wurde, gibt es eine Tabelle zurück, die es zurückgeben sollte. Also nicht sicher, warum es nur 1 zurückgeben würde.
Wie wird Astar im Gegensatz zu Ihrem Code zur package.loaded
-Tabelle für das Beispielskript hinzugefügt?
SCHNELLER LUA SYNTAKTISCHER ZUCKERRÜCKBLICK:
func 'string'
entsprichtfunc('string')
tabl.ident
entsprichttabl['ident']
Wenn Sie ein Skript mit require('Astar')
ausführen, ist dies Folgendes:
package.loaded['Astar']
ein Nicht-Null-Wert ist.
package.path
(und package.cpath
) aufgelistet sind, mit '?' ersetzt durch 'Astar', bis die erste Datei gefunden wird, die dem Muster entspricht. package.loaded['Astar']
auf true
. 'Astar'
als Argument (zugänglich als ...
im Modulskript). package.loaded['Astar']
. package.loaded['Astar']
wird zurückgegeben.
package.loaded['Astar']
laden und nichts zurückgeben kann. Wie jemand in den obigen Kommentaren angemerkt hat, kann Ihr Problem dadurch entstehen, dass Sie das Modul mit 'A S tar' anstelle von 'A s tar "AStar"
Lua verwenden, lädt das Skript unter).