我浏览了 Love2D 的设置网站并观看了多个关于 mac 设置的教程:
版本是11.4。我已经检查过我可以运行 Love2D(正如预期的那样,蓝天和鸭子气球的动画证明了尾部短语“NO GAME”)
我的桌面上有一个“游戏”文件夹,里面有一个文件:“main.lua”,代码为:
function love.draw()
love.graphics.print("Hello World!", 400, 300)
end
我在 VSCode 中安装了“Love2D Support”扩展,并为我的 Mac 找到了正确的文件路径:/Applications/love.app/Contents/MacOS/love
该路径必须正确,因为游戏实际上会在其自己的窗口中运行“Hello world”,但仅当“RunOnSave:True”时。所以,我必须改变一些东西(这里或那里的空格)并保存以使其运行。但为什么?我不想陷入无法解决此问题的困境。而且,也许我不想让它一直运行我所做的每一个更改。我希望能够通过终端选择“运行”或者拖放。
我根据教程和到目前为止所有论坛尝试过的东西都不起作用:
将包含main.lua的游戏根文件夹拖放到Love上运行(什么都不做,不报错,一点反应都没有。)
快捷键 Command + L(什么都不做,没有错误,根本没有反应。)
利用 VS Code 的“无需调试运行”,并通过选择“打开 launch.json”或“取消”获得警告弹出窗口“缺少要调试的‘程序’”。如果我选择前者,VS Code 会在游戏的根文件夹中创建一个目录“.vscode”,其中包含文件“launch.json”,调试器会抛出异常:
Exception has occurred: main.lua:1: attempt to index a nil value (global 'love')
stack traceback:
main.lua:1: in main chunk
[C]: in ?
如果我跳过异常,我会在终端中看到这个(或者这可能在运行启动期间显示在终端中(注意:“用户”是占位符):
[computer root placeholder] Games % /Users/user/.vscode/extensions/actboy168.lua-debug-1.61.0-da
rwin-arm64/runtime/darwin-arm64/lua54/lua -e dofile\"/Users/user/.vscode/extensions/actboy168
.lua-debug-1.61.0-darwin-arm64/script/launch.lua\"\;DBG\"2200\" /Users/user/Desktop/Games/mai
n.lua
/Users/user/.vscode/extensions/actboy168.lua-debug-1.61.0-darwin-arm64/runtime/darwin-arm64/lua54/lua: /Users/user/Desktop/Games/main.lua:1: attempt to index a nil value (global 'love')
stack traceback:
/Users/user/Desktop/Games/main.lua:1: in main chunk
[C]: in ?
我试图搜索此消息,但它不够具体,无法获得好的答案。
错误说
nil
到 love
所以尝试...
love = require('love') -- Should link/declare/load/point to: _G['package']['loaded']['love']
function love.draw()
love.graphics.print({{0, 0.999, 0, 1}, "Hello World!"}, 400, 300) -- Color: {{Red, Green, Blue, Alpha}, "STRING"}
end
(我爱 LÖVE :-) )所以让我们移动...
-- main.lua
-- Declare/Define whats needed
love = require('love') -- Should link/declare/load/point to: _G['package']['loaded']['love']
os = require('os')
function love.draw()
love.graphics.print({{0, 0.999, 0, 1}, ("%s\n%s\n%.6f"):format("Hello World!", os.date("%T"), os.clock())}, tonumber(os.date("%S")), tonumber(os.date("%S")))
end