Skip to main content

游戏开发:使用vscode写love2d

Feishiko
Author
Feishiko
Programming Avali

其实我已经用vscode写了好几个love2d游戏了,我自己的库也在不断完善。

但每次要写love2d的时候就会有很多代码以外的事情打扰我,比如说国内经典的网络问题,还有关于配置lsp上面。

所以我想尽可能出一期博客把之前踩过的坑记录一下。

首先为了在vscode里面写love2d,我们需要love2d库的lsp,这个你或许可以通过直接导入love2d的包的代码来做到直接在lua的基础上引用,能不能行得通我不知道至少这是一种合理的假设。

那么我自己是用sumneko的lua vscode插件。然后使用lua addon manager添加了一个love2d的lsp支持。开启很简单,ctrl + shift + p后输入> lua addon manager就能打开addon manager的GUI界面,找到love2d一栏,enable之后他就会自动从github远程仓库帮你拉取love2d相关的代码保证能够提示。另外会自动生成一个setting.json(你项目文件夹的)写上一些配置文件。

那么在国内应该会很频繁的会遇到连不上github的情况,关于vscode配置代理我也一直是一头雾水,你或许可以通过设置里面搜索proxy相关把你所用代理的ip + 端口写上去。但我之前这样做似乎没啥效果。如果不行可以通过修改settings.json(appdata里面的)配置文件,自己写上"http.proxy" : "http://127.0.0.1:7890"之类东西。其实是一个配置方法。

如果修改settings.json没有用,可以通过更改启动方式。之前看到过这篇文章,在这里引用:https://suiahae.me/Set-proxy-for-Visual-Studio-Code-on-Windows/#:~:text=%E4%B8%BAVisual%20St

如果log信息里面还是timeout那只能自己在想办法了,可以先排查一下是不是没代理上。


如果一切正常那大概是正常了,如果不太正常,比如没法取消enable啥的,那么把setting.json(项目文件夹的)里面的lua.workspace.checkThirdParty true了之后就大部分正常了。切记不要删除love2d addon文件夹里面的info.json,这会导致sumneko lua插件无法从github上拉取内容。

另外,如果你使用scoop下载了lua,这会导致scoop的lua环境会覆盖掉其他lua程序的环境,比如说你下的用love2d做的游戏,特别是用luasteam这个库的。之前因为想玩Balatro但是因为它老是找到scoop的lua让我很为难,因为scoop的环境下没有luasteam。包括如果你以后要上steam,使用luasteam的时候也会因为这个问题无法运行你的程序。所以不需要配置lua在系统里面也能写lua程序。

linux也是同理,如果你用包管理器安装了lua,这也会导致无法正常运行使用luasteam的游戏。

另外,推荐在sumneko的配置里面把lua环境改成luajit,因为love2d使用luajit(不知道原理是什么但是更快一些),新版本的lua支持位运算,正因如此可能会和一些库冲突(比如ldtk的导入库使用了位运算),也有能使用位运算的jit库。如果使用了5.4的语法,这会导致love的web端导出,love.js会出现问题。