我要如何设置才能运行Love2D lua游戏?我可以在我的 Mac 上欺骗加载游戏的唯一方法是利用“RunOnSave:True”

问题描述 投票:0回答:1

我浏览了 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 ?

我试图搜索此消息,但它不够具体,无法获得好的答案。

macos visual-studio-code lua love2d
1个回答
0
投票

错误说

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
© www.soinside.com 2019 - 2024. All rights reserved.