所以我和我的朋友正在尝试为ComputerCraft(Minecraft Mod)编写一个程序,该程序使用Lua作为编程语言。我以前没有做过Lua,他已经玩了一些。基本上,我们正在尝试使用m.clear()
清除一行文本,但是我认为即使我尝试定义它,它可能也不知道m
是什么。
很抱歉,如果这个问题的措辞不好,请输入以下代码:
m = peripheral.wrap("right")
m.write("Shutting down.")
m.clear()
sleep(.1)
m.setcursorpos(1,1)
print("Shutting Down..")
以及其余代码的功能(更多相同),我不会发布,因为该程序的功能是使其生效,以便每次添加.
,如果你明白我的意思。但是,这不是重要的部分。 :)
注意:我实际上不知道peripheral.wrap("right")
是什么意思,它是从ComputerCraft论坛的另一个人的代码中提取的(他也想清除屏幕)。
是在监视器上吗?
如果是,则显示器必须在计算机的右侧。 m.clear()
实际上被理解为peripheral.wrap("right").clear()
,它将在右侧访问监视器并使用命令clear()
。
[如果您想在计算机上清除它,只需使用term.clear()
。
功能peripheral.wrap(string side)
从计算机的指定端返回包含一些功能的表(如果未找到,则返回nil
)。您收到错误是因为您试图以nil的形式到达变量(nil =无)。
调用以下命令将在显示器的前面打印Hello, World
:
monitor = peripheral.wrap("top")
monitor.print("Hello, World")
类似地,您可以在终端机上进行相同的操作(计算机gui,您不必包装它:]
term.print("Hello, World")
如果只想与gui(而不是外部监视器)进行交互,则要使用表术语而不是pheral.wrap()。
term.write("Shutting down.")
term.clear()
sleep(.1)
term.setCursorPos(1,1) --This is supposed to be setCursorPos not setcursorpos!!!
print("Shutting Down..")
而不是m.clear()您应该使用term.clear()
我认为第一行应为“ local m = ...”此外,peripheral.wrap(“ right”)表示通过在计算机上发送任何命令而不是尝试在计算机上运行它,可以使计算机右侧的调制解调器,打印机等可用。
尝试检查它是否首先为零。
if m ~= nil then
m.clear()
else
print("can't connect")
end
尝试使用term.clear()
代替m.clear()
。
我遇到类似的错误,我是程序名试图建立索引? (零值)