Luaj学习笔记(一) - 快速入门小Demo

Luaj学习笔记(一) - 快速入门小Demo

目录


获取Luaj开发环境

方法一:从SourceForge下载

这里写图片描述
Luaj在SourceForge的主页:https://sourceforge.net/projects/luaj/
直接下载最新版本的Luaj:https://sourceforge.net/projects/luaj/files/latest/download

方法二:Maven依赖

在项目的pom.xml文件中添加Maven依赖项.

<!-- https://mvnrepository.com/artifact/org.luaj/luaj-jse -->
<dependency>
    <groupId>org.luaj</groupId>
    <artifactId>luaj-jse</artifactId>
    <version>3.0.1</version>
</dependency>

入门Demo

入门示例Demo分为两种:
1. 输出Hello,World
2. 执行Lua脚本文件

示例一:输出Hello,World

编写Java代码
执行一条简单的Lua代码print 'Hello World!

String luaStr = "print 'Hello World!'";
Globals globals = JsePlatform.standardGlobals();
LuaValue lv = globals.load(luaStr);
lv.call();

执行结果

Hello World!

示例二:执行Lua脚本文件

创建Lua文件
在项目根目录下创建目录及文件 script/test.lua,在该Lua脚本中编写Lua代码:

--圆周率
function pi()
    return 3.1415
end

--圆的面积
function circle_area(radius)
    return pi()*radius*radius
end

编写Java代码

// lua脚本文件所在路径
String luaPath = "script/test.lua";   
Globals globals = JsePlatform.standardGlobals();
// 加载脚本文件script/test.lua,并编译
globals.loadfile(luaPath).call();

// 获取函数:pi()
LuaValue func = globals.get(LuaValue.valueOf("pi"));
// 执行pi()方法获取圆周率
double pi = func.call().todouble();
System.out.println("圆周率:" + pi);

// 获取带参函数circle_area()
LuaValue func1 = globals.get(LuaValue.valueOf("circle_area"));
// 执行circle_area方法,传入double类型的半径参数
double area = func1.call(LuaValue.valueOf(3.0)).todouble();
// 打印lua函数回传的数据
System.out.println("半径为3.0的圆形面积为:" + area);

执行结果

圆周率:3.1415
半径为3.0的圆形面积为:28.2735


参考资料

  1. 《从零开始搭建游戏服务器》Java与Lua互相调用:https://blog.csdn.net/linshuhe1/article/details/69581584/

猜你喜欢

转载自blog.csdn.net/lgj123xj/article/details/81592978