• [Love] VSCODE 调试 LOVE 引擎游戏


    VSCODE调试LOVE引擎游戏

    安装插件


    配置插件

    CTRL + SHIFT + P,打开Preferences: Open User Settings (JSON),为settings.json添加如下代码

    lua
      "Lua.runtime.version": "LuaJIT",
      "Lua.diagnostics.globals": [
        "love",
      ],
      "Lua.workspace.library": [
        "${3rd}/love2d/library"
      ],
      "Lua.workspace.checkThirdParty": false,
    

    添加系统环境变量


    配置启动文件

    Run and Debug配置launch.json,该文件将出现在你工作目录下的 .vscode 文件夹

    json
    {
      "version": "0.2.0",
      "configurations": [
        {
          "type": "lua-local",
          "request": "launch",
          "name": "Debug",
          "program": {
            "command": "love"
          },
          "args": [
            ".",
            "debug"
          ],
        },
        {
          "type": "lua-local",
          "request": "launch",
          "name": "Release",
          "program": {
            "command": "love"
          },
          "args": [
            ".",
          ],
        },
      ]
    }
    

    添加至 main.lua最顶部

    lua
    if arg[2] == "debug" then
        require("lldebugger").start()
    end
    

    添加至main.lua最底部(可选)

    出错信息不会显示在游戏窗口画面上,而是直接定位到当前错误的行

    lua
    local love_errorhandler = love.errhand
    
    function love.errorhandler(msg)
        if lldebugger then
            error(msg, 2)
        else
            return love_errorhandler(msg)
        end
    end
    

    关闭外部控制台

    修改conf.lua,关闭t.console,否则调试器会无法获取到信息而卡住

    lua
    -- conf.lua
    love.conf = function(t)
        -- t.console = true
    end
    

    启动调试

    按F5启动游戏,你现在可以选择两种方式来启动

    • Debug 可以调试游戏(需要设置断点)
    • Release 直接运行游戏

    如果出现提示 '"love"' �����ڲ����ⲿ���Ҳ���ǿ����еij��� ���������ļ��� 只需要重启VSCODE


    关于调试器

    tomblind/local-lua-debugger-vscode: Local Lua Debugger for VSCode (github.com)

    ⭐ 快速模板

    lua
    if arg[2] == "debug" then
      require("lldebugger").start()
    end
    
    -- your code
    
    local love_errorhandler = love.errhand
    
    function love.errorhandler(msg)
        if lldebugger then
            error(msg, 2)
        else
            return love_errorhandler(msg)
        end
    end
    
    
    json
    {
      "version": "0.2.0",
      "configurations": [
        
        {
          "type": "lua-local",
          "request": "launch",
          "name": "Debug",
          "program": {
            "command": "love"
          },
          "args": [
            ".",
            "debug"
          ],
        },
        {
          "type": "lua-local",
          "request": "launch",
          "name": "Release",
          "program": {
            "command": "love"
          },
          "args": [
            ".",
          ],
        },
      ]
    }
    

    __EOF__

  • 本文作者: 小能正在往前冲
  • 本文链接: https://www.cnblogs.com/linxiaoxu/p/17653162.html
  • 关于博主: 评论和私信会在第一时间回复。或者直接私信我。
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
  • 声援博主: 如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。
  • 相关阅读:
    毕业设计 基于单片机的地震探测器系统 - stm32 物联网 嵌入式
    全流程机器视觉工程开发(三)任务前瞻 - 从opencv的安装编译说起,到图像增强和分割
    Java中的栈(Stack)为什么要采用先进后出
    30_log阶段
    vue2和vue3的声明周期
    论文导读 | 融合大规模语言模型与知识图谱的推理方法
    Python UI自动化 —— pytest常用运行参数解析、pytest执行顺序解析
    “奶爸车”成功了,那“女性车”呢?
    Linux 网络编程项目 —— FTP 网盘
    为AI电脑生态注入强悍动力,安耐美PlatiGemini 1200W高性能电源
  • 原文地址:https://www.cnblogs.com/linxiaoxu/p/17653162.html