Lua "Versucht zu indizieren ? (a nil value)
Also mein Freund und ich versuchen ein Programm zu schreiben, für ComputerCraft (Minecraft Mod), die verwendet Lua als Programmiersprache. Ich habe nicht getan, alle Lua vor und er spielte ein bisschen mit ihm. Grundsätzlich versuchen wir, eine klare Linie der text mit m.clear()
, aber ich denke, dass es vielleicht nicht wissen, was m
ist, obwohl ich versuchte, es zu definieren.
Sorry, wenn die Frage ist schlecht formuliert, hier der code:
m = peripheral.wrap("right")
m.write("Shutting down.")
m.clear()
sleep(.1)
m.setcursorpos(1,1)
print("Shutting Down..")
Und die Funktion der rest des Codes (das ist nur mehr von der gleichen) werde ich nicht posten, weil die Funktion des Programms ist so zu machen, dass Sie ' ll fügen Sie eine .
jedes mal, wenn Sie verstehen, was ich meine. Aber, das ist nicht der wichtige Teil. 🙂
Hinweise:
Ich weiß wirklich nicht, was peripheral.wrap("right")
bedeutet, es wurde aus dem ComputerCraft Foren von einer anderen person code (er wollte auch, um den Bildschirm zu löschen).
- welche Zeile den Fehler auslöst?
m.write("...")
? Wenn es das API nicht zurückgeben eines Objekts beim Aufruf Peripherie.wrap(), und Sie haben zu untersuchen, um zu sehen, warum.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ist diese auf einem monitor?
Wenn ja, dann hat der monitor werden auf der rechten Seite des Computers.
m.clear()
ist eigentlich verstanden alsperipheral.wrap("right").clear()
und auf den monitor nach rechts und verwenden Sie den Befehlclear()
.Wenn Sie versuchen, deaktivieren Sie diese auf dem computer, verwenden Sie einfach
term.clear()
.Die Funktion
peripheral.wrap(string side)
gibt eine Tabelle, die einige Funktionen aus der Peripherie an die angegebene Seite des Computers (wenn keiner gefunden wird zurücknil
).Sie hatte den Fehler, weil Sie versucht haben zu erreichen, die variable in ein nil (nil = nichts).
Aufrufen das folgende druckt
Hello, World
an der Vorderseite des Monitors:Ebenso können Sie das gleiche tun mit Ihrem Endgerät (computer, gui, die Sie nicht haben, um es wrap):
Wenn Sie nur wollen, um die Interaktion mit der gui (und nicht eines externen Monitors), die Sie wollen, verwenden Sie die Tabelle Begriff anstelle von peripheren.wrap().
statt m.clear() sollten Sie verwenden Begriff.clear()
term.
ist nicht richtigIch denke, die erste Zeile sollte "local m =..."
Auch periphere.wrap("right") heißt, macht es das modem, Drucker, etc. auf der rechten Seite des Computers nutzbar senden Sie alle Befehle, anstatt zu versuchen, um es auf dem computer ausführen.
versuchen zu überprüfen, um zu sehen, ob es null ist erste ist oder nicht..
Versuchen Sie es mit
term.clear()
stattm.clear()
.