當前位置:編程學習大全網 - 源碼下載 - cocos2dx-3.7版本lua程序入口在哪

cocos2dx-3.7版本lua程序入口在哪

壹、主要分為兩個大步驟,Lua工程的修改,android工程的修改

二、工程環境

開發工具:Cocos-Code-IDE

Lua版本 : Lua 5.1

java版本:1.7

NDK版本:android-ndk-r10c

ANT版本:apache-ant-1.9.4

Framwork:cocos-2dx-3.4

python : 2.7.3

三、Lua工程中的修改

1.在Cocos-Code-IDE中新建Lua工程

可以在這個工程目錄中找到Luaj:

2.新建壹個lua類,寫上調用android的方法。

我在src/app/models/下面新建了壹個Lua文件,命名為:luajTest.lua

其中代碼如下:

local luaj = require "cocos.cocos2d.luaj" --引入luaj

local luajTest = class("luajTest") -- 構建lua 類

function luajTest:callandroid() --調用android的方法實現

--包名/類名 這個可以在對應的android工程的manifest中得到

local className="org/cocos2dx/lua/AppActivity"

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

end

return luajTest123456789101112131415161718192021222324

3.在入口場景中調用android方法。

我修改了src/app/views/MainScene.lua的場景跳轉方法,如下:

local MainScene = class("MainScene", cc.load("mvc").ViewBase)

local testluaj = require('src.app.models.luajTest')--引入luajTest類

function MainScene:onCreate()

-- add background image

display.newSprite("MainSceneBg.jpg")

:move(display.center)

:addTo(self)

-- add play button

local playButton = cc.MenuItemImage:create("PlayButton.png", "PlayButton.png")

:onClicked(function()

self:getApp():enterScene("PlayScene") --跳轉了壹個場景

--在這裏嘗試調用android static代碼

local testluajobj = testluaj.new(self)

testluajobj.callandroid(self);

end)

cc.Menu:create(playButton)

:move(display.cx, display.cy - 200)

:addTo(self)

end

return MainScene1234567891011121314151617181920212223242526272829

4.以上為Lua工程中的修改。

四、android工程的修改

1.找到相對應的android工程的。

Lua工程通過Runtime構建的android工程在Lua工程\framewokes\runtime-src\proj.android中。

2.根據luajTest.lua類中定義的包名類名,找到AppActivity.java

3.打開AppActivity.java,在空白處加上uajTest.lua類中定義要調用的方法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);

}

1234567891011121314

記得在文件上面引入Cocos2dxLuaJavaBridge類。

import org.cocos2dx.lib.Cocos2dxLuaJavaBridge;1

4.到此,修改完成。構建apk,安裝到手機中,看Log.

如果看到以下Log,證明妳的Luaj成功調用了java代碼了。

  • 上一篇:《天諭手遊》同心尋寶拼圖碎片位置坐標壹覽
  • 下一篇:前端開發的職業目標怎麽寫 知乎
  • copyright 2024編程學習大全網