关于cocos2dx(3.1.6版本) 使用luafilesystem lfs库的安装

    最近项目使用lua+cocos进行开发,开发中想实现一个功能,就是使用lua读取文件夹里面所有的文件名 包含子文件夹文件名  读出来以后可以方便的使用require 文件, 比如:想要require 一个lua文件   就要 require "xx.xx.xx.test.lua"  只要把文件名全部读出来   就可以直接写一个公共函数 Grequire(className)   使用的时候就可以不用关心xx.xx.xx路径,现在就此方案   需要使用lfs的支持   安装过程种也遇到过许多问题, 就此在这里分享一下过程,写了6年代码  第一次写博客分享,希望大家能够鼓励一下,哈哈哈~

    1.首先需要下载安装lfs库,下载地址:https://github.com/keplerproject/luafilesystem    感谢作者提供各式各样的插件。下载后解压缩文件 关于cocos2dx(3.1.6版本) 使用luafilesystem lfs库的安装_第1张图片

要使用到的是 lfs.c和lfs.h

2.在lua项目的frameworks\cocos2d-x\external\lua\下  新建一个文件夹luafilesystem(名字自定义) 把lfs.c和lfs.h拷贝进去

然后VS打开frameworks\runtime-src\proj.win32\xxx.sln   在libluacocos2dx里面右键 1.新建筛选器 2.导入现有项目把lfs.c和lfs.h导入

  关于cocos2dx(3.1.6版本) 使用luafilesystem lfs库的安装_第2张图片

3.上面完成后打开frameworks\cocos2d-x\cocos\scripting\lua-bindings\manual\network\lua_extensions.c

文件添加引入lfs库代码关于cocos2dx(3.1.6版本) 使用luafilesystem lfs库的安装_第3张图片

一个是#include "luafilesystem/lfs.h"  和 {"lfs", luaopen_lfs} 16行代码"lfs"是在lua里面的全局变量  可以改成其它名字,就此完成C++方面  如果发布android的时候需要添加 frameworks\cocos2d-x\cocos\scripting\lua-bindings\proj.android\Android.mk文件的编译

关于cocos2dx(3.1.6版本) 使用luafilesystem lfs库的安装_第4张图片

好了 就此就可以使用VS 进行编译了~~~~

4.编译完成后 在lua里面使用方式为 require "lfs" lfs在C++里面压栈的时候是全局变量  所以在lua里面直接可以使用lfs.xxx()函数 但是有一点需要注意的是 如果你的cocos-lua版本带有 全局变量检测的话 就需要在 require "cocos.init"之前引入lfs库否则会报全局变量污染错误”USE " cc.exports.lfs = value " INSTEAD OF SET GLOBAL VARIABLE“ 我的是在最初就引入了  所以lua方面正常

关于cocos2dx(3.1.6版本) 使用luafilesystem lfs库的安装_第5张图片

纯手写 请鼓励给点鼓励啊 如有写的不好的地方请见谅~

    

你可能感兴趣的:(cocos)