Lua代码在我的高级电脑上可以正常运行,但在显示器上无法运行。

我运营着一个成功的 Minecraft Tekkit 模组服务器,其中带有基于 Computer Craft 的程序。

我的 Lua 语言基础较浅,只了解一些基础知识。我正在尝试创建一个带有页面的菜单,用于展示禁用物品列表和规则列表。我已经使用箭头制作了一个适用于高级计算机和监视器的程序。

该代码可以在我的高级计算机上正常运行,但无法在监视器上运行。当它显示出来时,单击箭头也无法工作。

我刚刚开始使用 stack 模块,所以不确定应该怎么做,如果您需要任何信息,请随时提问 :)

代码:http://pastebin.com/gVtPeBCE

顺便说一下,我已经尝试使用“Mon.write”和“Mon = peripheral.wrap(“top”)”。

以下是 Computercraft 模拟器的链接,供那些没有 Tekkit 的用户使用:https://goo.gl/J0dPq0

点赞
用户4877323
用户4877323

很抱歉告诉您我没有全部阅读您的代码。但根据您的描述,我认为问题可能有三个,不包括错误的语法。

注意: 您的问题仅涉及程序在监视器上运行的能力,而您提供的仿真器仅提供桌面上的ComputerCraft计算机。

#Peripheral

尽管您已经声明:

另外我已经尝试使用 Mon.writeMon = peripheral.wrap("top")

我想澄清,为了简化代码转换,您可以将外设函数表设置为_term_变量。例如:term = peripheral.wrap(string_side)

注意: 当您使用此方法时,您不应该使用命令执行程序:

> monitor side program

而应该像运行普通程序一样运行。

> program

#Incorrect Mouse Event Detection

简单来说,当使用监视器时,您不应该pull mouse_click 事件。您必须改为pull monitor_touch 事件。

while true do
  type, side, x, y = os.pullEvent()
  if type == "monitor_touch" then
    print("Monitor '"..side.."' has been pressed at "..x..", "..y..")!
  end
end

#Monitor Size

这只是意味着您尝试在监视器上执行的程序占用了太多的空间,因此在显示该大小的监视器上无法使用。

建议:更新程序以适应监视器大小或构建适合程序的监视器。


请记住,所有这些想法可能都无法回答您的问题,因为您提供的代码太大,我无法找到时间进行实验。因此,这些只是一般建议。

2015-06-12 06:10:40
用户3189167
用户3189167

如果我必须猜的话,那是因为term短语终端的缘故,并且可以自动与计算机配合使用。所以,如果你将 term 设置为文件顶部的显示器,它应该能正常工作。

把它放在你的代码顶端,它应该可以工作。但这只是我在看了你的代码样本后的想法(而且你的代码样本不是很长...)

2015-06-21 08:23:41