-1

我运行了一个成功的 Minecraft Tekkit 改装服务器,上面装有计算机工艺。

我对 lua 还很陌生,只知道基础知识,我正在尝试制作一个带有页面的菜单,以显示被禁止的项目列表和规则列表。我制作了一个带有箭头的程序,该程序针对高级计算机和显示器进行了优化。

该代码在我的高级计算机上正常运行,但不能在显示器上运行,当它显示并且有人单击箭头时它也不起作用。

我刚开始使用堆栈,所以我不确定该怎么做,如果您需要任何信息,请询问:)

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

顺便说一句,我已经尝试过使用Mon.writeMon = peripheral.wrap("top")

对于那些没有 tekkit 的人,这里有一个计算机模拟器https ://goo.gl/J0dPq0

4

2 回答 2

0

很遗憾地通知您,我没有通读您的所有代码。但是根据您的描述判断,我会说这可能是三个问题之一,不包括不正确的语法。

注意:您的问题是专门询问程序在监视器上运行的能力,而您链接到的模拟器仅提供桌面 ComputerCraft 计算机。

外围设备

虽然你已经说过:

顺便说一句,我已经尝试过使用Mon.writeMon = peripheral.wrap("top")

我想澄清一下,作为简化代码转换的一种方式,您可以将外围功能表设置为等于术语变量。例如:term = peripheral.wrap(string_side)

注意:使用此方法时,不应使用以下命令执行程序:

> monitor side program.

您应该将其作为普通程序运行,无需特殊处理。

> program

不正确的鼠标事件检测

简而言之,当使用监视器时,您不应该为mouse_click事件拉动。您必须改为参加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

显示器尺寸

这只是意味着您尝试在显示器上执行的程序占用了大量空间,因此在该尺寸的显示器上显示时无法使用。

建议:要么根据监视器大小更新代码,要么构建监视器以适应程序。


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

于 2015-06-12T06:10:40.597 回答
0

如果我不得不猜测,那是因为 term 是终端的缩写,并且会自动与计算机一起工作,所以如果您将 term 设置为文件顶部的监视器,它应该可以正常工作。

term = peripheral.wrap("SIDE OF MONITOR")

把它放在代码的顶部,它应该可以工作。但这就是我在查看您的代码后认为的(也不是那么长的代码示例......)

于 2015-06-21T08:23:41.147 回答