cocos2d-x lua LuaJavaBridge
cocos2d-x為我們封裝了LuaJavaBridge,避免了jni的繁瑣,現在可以輕鬆的實現lua和android端的互調了,引讀
LuaJavaBridge - Lua 與 Java 互操作的簡單解決方案
看個例子
1、lua呼叫android端
lua程式碼
--引入LuaJavaBridge
local luaj = require "luaj"
local className="com/lua/java/Test" --包名/類名
local args = { "hello android", callbackLua }
local sigs = "(Ljava/lang/String;I)V" --傳入string引數,無返回值
--luaj 呼叫 Java 方法時,可能會出現各種錯誤,因此 luaj 提供了一種機制讓 Lua 呼叫程式碼可以確定 Java 方法是否成功呼叫。
--luaj.callStaticMethod() 會返回兩個值
--當成功時,第一個值為 true,第二個值是 Java 方法的返回值(如果有)
--當失敗時,第一個值為 false,第二個值是錯誤程式碼
local ok,ret = luaj.callStaticMethod(className,"test",args,sigs)
if not ok then
item:setString(ok.."error:"..ret)
end
android端的程式碼
package com.lua.java;
/**
* 引入Cocos2dxLuaJavaBridge
*/
import org.cocos2dx.lib.Cocos2dxLuaJavaBridge;
public class Test {
public static void test(final String param,final int luaFunc){
System.out.println("----傳過來的引數----param:"+param);
System.out.println("-------luaFunc:"+luaFunc);
/**
* 給lua返回一個字串
*/
Cocos2dxLuaJavaBridge.callLuaFunctionWithString(luaFunc, "success");
/**
* 移除luaId
*/
Cocos2dxLuaJavaBridge.releaseLuaFunction(luaFunc);
}
}
2、android端呼叫lua
lua程式碼,呼叫的是全域性函式
function testAndroid(parameters)
print("--testAndroid--",parameters)
cc.Director:getInstance():endToLua()
end
android端
import org.cocos2dx.lib.Cocos2dxLuaJavaBridge;
/**
* testAndroid lua中的方法名
* androidLua 傳遞給lua函式的引數值
*/
Cocos2dxLuaJavaBridge.callLuaGlobalFunctionWithString("testAndroid", "androidLua");
相關文章
- cocos2d-x綁lua的開發環境開發環境
- Cocos2d-x下Lua呼叫自定義C++類C++
- [轉]Cocos2d-x下Lua呼叫自定義C++類和函式的最佳實踐C++函式
- Lua 特性
- 《Lua-in-ConTeXt》09:學一點 LuaContext
- Lua遊戲開發(一)---Lua語言遊戲開發
- lua~IDEA中除錯lua指令碼Idea除錯指令碼
- 【Lua】VSCode 搭建 Lua 開發環境VSCode開發環境
- Redis與Lua及Redis-py應用LuaRedis
- Lua math庫
- LUA基礎: TABLE, ARRAY, NAMESPACE, LUA的物件導向namespace物件
- chuck-lua 一個lua網路應用框架框架
- 【Cocos2d-x】整合wxSqlite3到Cocos2d-xSQLite
- Lua遊戲開發(三)---Lua語言學習(上)遊戲開發
- 透過例子學習Lua(2)---Lua流程控制(轉)
- Nginx 新增 lua 模組Nginx
- Redis - Lua 指令碼Redis指令碼
- lua檔案操作
- 1、Lua 基礎
- Android 與 LuaAndroid
- lua呼叫c程式C程式
- lua list 封裝封裝
- Lua擴充套件套件
- Lua FFI 實戰
- lua 基礎 1
- lua-excel助手Excel
- lua的for的坑
- lua~基本語法
- C++呼叫LuaC++
- lua的update、lateupdate
- Learning Cocos2d-x for XNA(1)——小窺cocos2d-x框架框架
- 透過例子學習Lua(3)----Lua資料結構(轉)資料結構
- cocos2d-x遊戲引擎遊戲引擎
- lua學習: lua及函數語言程式設計語言函數程式設計
- 透過例子學習Lua(5)--Lua與C的互動(轉)
- 當 Go 遇上了 LuaGo
- Redis使用Lua指令碼Redis指令碼
- lua 學習總結