【问题标题】:Trouble Creating Canvas for Emulator为模拟器创建画布时遇到问题
【发布时间】:2019-05-30 22:14:03
【问题描述】:

我正在尝试在 BizHawk 模拟器中的 Lua Canvas 上显示文本,但在“LuaCanvas.drawText”命令的行中不断收到相同的错误。

我没有找到任何使用画布的 Bizhawk 示例脚本

gui.createcanvas(640, 480);
while true do
    LuaCanvas.drawText(100, 100, message);
    emu.frameadvance();
end

脚本打开两个画布窗口而不是所需的一个画布,并且没有我提供的“消息”字符串。

错误信息如下: NLua.Exceptions.LuaScriptException: [string "main"]:3: 尝试索引全局 'LuaCanvas' (一个 nil 值)

【问题讨论】:

  • 这个答案有帮助吗?

标签: lua


【解决方案1】:

我认为代码应该更像这样。

drawSpace = gui.createcanvas(192,160)
drawSpace.drawBox(5,5,50,50)

或者试试

local c = gui.createCanvas(60, 60, 300, 200);
c:onPaint = function(params)
  self:clear(1, 0, 0, 1);
  self:moveTo(10, 10);
  self:lineTo(100, 100);
end

不过,似乎缺少文档。

【讨论】:

  • 文档说nluatable gui.createcanvas(int width, int height, [int? x = null], [int? y = null]) Creates a canvas of the given size and, if specified, the given coordinates.tasvideos.org/Bizhawk/LuaFunctions.html
  • @EgorSkriptunoff 我从找到的旧脚本中复制了第二个示例。我敢打赌API已经改变了。总之,更新了。
猜你喜欢
  • 2011-03-16
  • 2012-10-10
  • 2011-11-07
  • 1970-01-01
  • 2012-10-16
  • 2015-09-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多