百度餐饮网站建设,广州做创客教室的厂家网站,网站优化待遇,ppt模板下载素材网站在游戏里少不了文件操作#xff0c;在love2d里我们可以直接用lua自带的io函数#xff0c;如果不熟悉可以先读一下我的lua文件读写。 相对lua#xff0c;love2d提供了更多的函数#xff0c; 方便我们操作文件。不过可能处于安全考虑#xff0c;love2d只允许我们访问两个目录…在游戏里少不了文件操作在love2d里我们可以直接用lua自带的io函数如果不熟悉可以先读一下我的lua文件读写。 相对lualove2d提供了更多的函数 方便我们操作文件。不过可能处于安全考虑love2d只允许我们访问两个目录 1、.love文件根目录或源码根目录 2、游戏存档目录 游戏存档目录在不同平台分别为 Windows XP: C:\Documents and Settings\user\Application Data\LOVE\ or %appdata%\LOVE\Windows Vista and 7,8: C:\Users\user\AppData\Roaming\LOVE or %appdata%\LOVE\Linux: $XDG_DATA_HOME/love/ or ~/.local/share/love/Mac: /Users/user/Library/Application Support/LOVE/读文件两个目录都可以但是写文件只能在存档目录。love会先查找存档目录在查找love文件目录。所以有相同文件在 存档目录和love文件目录会优先使用存档目录。因为在存档目录里已经找到了个人感觉这么做不符合绿色软件 注意所有的路径都是相对于love文件的相对路径。除了使用get*Directory()获取的 存档目录可以在con.lu里设置t.identity目录名或者用love.filesystem.setIdentity设置。 wiki里的函数已经很详细了我就说一下注意事项。 love.filesystem.isFused( )判断love是否运行在沙盒模式即getAppdataDirectory和getIdentity是同一目录。 在沙盒模式下可以加载存档目录里的C动态库。 love.filesystem.newFile()创建一个新文件之后可以像lua里文件读写一样操作文件具体函数请看wiki。 不过love里newFile()后得到的文件句柄具有更多的操作其中一个是setBuffer缓存模式BufferMode 可以设置为none立即写入、line遇到换行符立即写入用在读写文本里、full要用flush函数显示调用才行。 love.filesystem.newFileData( contents, name, decoder ) 支持普通文件和base64加密后的文件 love.filesystem.load()加载lua文件到内存但不执行如果要执行可以加括号即love.filesystem.load(file)()。 love.filesystem.mount() 挂载zip文件或者目录这个功能方便了我们打包资源。压缩文件可以和love文件在同一目录。 例如content.zip里有myimage.png那么我们可以love.filesystem.mount(content.zip, content) 这个操作会把content.zip里的文件读入并在love的搜索路径里生成一个content的虚拟目录那么我们可以用assert(love.filesystem.exists(content/myimage.png))来判断是否成功读入。 下面是用love的文件读写保存的示例文件保存在存档目录。 main.lua local canvas
local dir
function love.load()--dirlove.filesystem.getWorkingDirectory()--love.filesystem.setIdentity(dir) --不能把可写目录改变到love文件目录print(love.filesystem.getIdentity())canvas love.graphics.newCanvas(800, 600)love.graphics.setCanvas(canvas)canvas:clear()love.graphics.setColor(255, 0, 0)love.graphics.circle(fill, 400, 300, 100, 100)love.graphics.setCanvas()local datacanvas:getImageData()local sizedata:getSize()data:encode( aaaaaa.png, png ) --这样保存的没问题local success love.filesystem.write(aaaaaa.bmp, data, size) --有问题print(success)local fileContent5paw5bm05br5LmQ77yB --base64新年快乐--这个文件名可以和写入时不同个人感觉这个文件名参数多余local fileDatalove.filesystem.newFileData(fileContent,aaaa.txt,base64)local success love.filesystem.write(aaaabb.txt, fileData)print(success)endfunction love.draw()love.graphics.draw(canvas)end 转载于:https://www.cnblogs.com/xdao/p/love2d-tutor30.html