成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

如何集成Lua實現到Android游戲

移動開發 iOS
如何集成Lua實現到Android游戲是本文要介紹的內容,主要是來學習LUA的集成,如何實現到自己的android游戲中,具體內容來看本文詳解。

如何集成Lua實現到Android游戲是本文要介紹的內容,主要是來學習LUA的集成,如何實現到自己的android游戲中。當前眾多游戲引入腳本語言作為快速發布內容以及靈活擴展的解決方案,在尋找向Android應用集成Lua腳本語言的方案時,大量零碎的資料并沒有向開發者指引一個明確的方向。

在這里我把自己通過整合資料完成的方案寫下來,希望能給需要的程序員幫助,歡迎大家提供更快捷的方案。不再贅述Android開發環境的配置以及Lua腳本語言的介紹,需要了解的朋友可以Google資料。

我的開發環境是Window,列舉我們將要用到的工具和組件:

  1. Native Development Kit r6  http://developer.android.com/sdk/ndk/index.html   
  2. Cygwin 1.7       http://www.cygwin.com/   
  3. Lua 5.1.4 source    http://www.lua.org/   
  4. luajava 1.1 source    http://www.keplerproject.org/luajava/manual.html  

簡要介紹解決方案涉及到的幾個基本概念,高手自動略過:

Lua用C實現,所以如果我們不打算用Java重寫解釋器的話,我們需要一種方式使CJava能良好的溝通,熟悉Java的程序員肯定想到了JNI(Java Native Interface)。你可能在Linux環境和Window環境使用過JNI,過程并不復雜:寫好Java文件并在其中聲明好native方法→用javah生成C頭文件→為C文件中聲明的函數寫好實現→編譯C代碼生成動態鏈接庫,這樣就可以在Java中使用native方法了。

在Android下我們同樣要經過這些步驟,只不過編譯生成動態鏈接庫的時候我們需要Google提供的NDK工具。在Window環境下使用NDK還需要安裝UNIX模擬環境Cygwin。我們還將用到一個對Lua進行良好封裝的開源項目luajava。

下面開始詳細步驟:

安裝Cygwin,下載到的setup是一個安裝器,負責在線或者本地找到安裝需要的文件并執行安裝,建議把文件下載到本地以備下次使用,安裝過程執行到選擇安裝包時一定確定All結點(樹形結點的根結點)在Install狀態以免需要的包不被安裝,如果是在線安裝時間會很長,耐心等待過后Cygwin安裝成功。
安裝NDK,NDK是一個壓縮文件,下載完成解壓縮(建議解壓縮到一個方便輸入路徑的目錄)。

下載上面lua和luajava的源代碼并解壓縮到任意目錄。

在任意目錄創建luajava4android(名字可以任意)目錄,在目錄下創建子目錄jni(名字指定為jni),把lua和luajava中的C文件(包括頭文件和源文件)都拷入該目錄,并在該目錄下創建Android.mk文件,拷貝下面內容至文件: 

  1. LOCAL_PATH := $(call my-dir)   
  2. include $(CLEAR_VARS)   
  3. LOCAL_ARM_MODE :arm 
  4. LOCAL_MODULE :luajava-1.1  
  5. LOCAL_SRC_FILES :lapi.c \  
  6. lauxlib.c \  
  7. lbaselib.c \  
  8. lcode.c \  
  9. ldblib.c \  
  10. ldebug.c \  
  11. ldo.c \  
  12. ldump.c \  
  13. lfunc.c \  
  14. lgc.c \  
  15. linit.c \  
  16. liolib.c \  
  17. llex.c \  
  18. lmathlib.c \  
  19. lmem.c \  
  20. loadlib.c \  
  21. lobject.c \  
  22. lopcodes.c \  
  23. loslib.c \  
  24. lparser.c \  
  25. lstate.c \  
  26. lstring.c \  
  27. lstrlib.c \  
  28. ltable.c \  
  29. ltablib.c \  
  30. ltm.c \  
  31. lundump.c \  
  32. lvm.c \  
  33. lzio.c \  
  34. print.c \  
  35. luajava.c include $(BUILD_SHARED_LIBRARY)  

運行Cygwin安裝目錄下的Cygwin.bat進入命令行界面,進入剛才建立的luajava4android路徑,執行ndk-build,成功以后就會在目錄下生成一個lib目錄,里面以.so為后綴名的文件即為我們需要的動態鏈接庫文件。

把luajava中的java源代碼導入到自己的Android工程中,在工程目錄下建立\libs\armeabi\結構的路徑,并把動態鏈接庫文件拷入,刷新工程,這樣我們就完成了所有的步驟,并不復雜,可以寫一個簡單的實例來驗證Lua環境是否搭建好了。

  1. package com.android.hello;   
  2. import android.app.Activity;  
  3. import android.os.Bundle;  
  4. import android.widget.TextView;   
  5. import org.keplerproject.luajava.*;   
  6. public class HelloAndroidActivity extends Activity {   
  7. @Override   
  8. public void onCreate(Bundle savedInstanceState) {  
  9.   LuaState L = LuaStateFactory.newLuaState();  
  10.   L.openLibs();L.LdoString("text = 'Hello Android, I am Lua.'");  
  11.   L.getGlobal("text");String text = L.toString(-1);   
  12.   super.onCreate(savedInstanceState);  
  13.   TextView tv = new TextView(this);  
  14.   tv.setText(text);  
  15.   setContentView(tv);  
  16.   }  
  17. }  

小結:如何集成Lua實現到Android游戲的內容介紹完了,希望通過本文的學習能對你有所幫助!

責任編輯:zhaolei 來源: 互聯網
相關推薦

2011-08-31 17:04:26

2011-04-25 14:45:38

2011-08-24 11:14:25

LUA 游戲

2013-05-21 13:33:02

Android游戲開發異步音樂播放

2011-08-24 14:26:08

Lua游戲腳本

2014-07-15 10:34:14

Android游戲引擎

2011-08-23 14:33:51

Lua捕獲字符串

2011-08-24 16:41:38

lua調試器

2018-06-13 16:38:33

React Nativ組件Android

2011-08-31 15:36:59

Lua解釋器

2011-08-24 13:56:12

Lua游戲

2021-01-12 06:42:50

Lua腳本語言編程語言

2011-08-25 15:35:18

Lua游戲對象

2011-08-24 10:32:03

LuaPlusC++Lua

2020-05-18 10:08:22

卓越集成中心ICoE

2011-08-23 09:50:29

LuaPlusLua 腳本

2011-08-25 10:40:21

Lua游戲

2022-09-02 10:20:44

網絡切片網絡5G

2011-05-31 15:56:52

游戲啟動菜單Android

2011-09-16 10:25:01

Android應用蠟筆大炮游戲
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 女女百合av大片一区二区三区九县 | 午夜在线免费观看 | 欧美在线一区二区三区 | 国产高潮好爽受不了了夜夜做 | 午夜成人免费视频 | 亚洲高清三级 | a久久 | 91久久国产综合久久 | 国产免费一区二区三区最新6 | 精品一区久久 | 欧美成人精品在线 | 精品久久久久久久 | 请别相信他免费喜剧电影在线观看 | 亚洲精品久久嫩草网站秘色 | 日本特黄a级高清免费大片 国产精品久久性 | 欧美va大片 | 91视频在线看 | 久久看片 | 精品国产一区二区三区久久影院 | 中文字幕亚洲区一区二 | 欧美久久精品一级c片 | 日韩欧美手机在线 | 精品乱码一区二区三四区视频 | 99国产精品视频免费观看一公开 | 岛国av一区二区 | 精品91久久 | www.日韩av.com| 7777在线视频 | 久久精品一区二区三区四区 | 精品日韩一区二区三区av动图 | 91精品久久久久久久久中文字幕 | 狠狠干狠狠操 | 国产精品99久久久久 | 免费在线观看黄视频 | 亚洲激精日韩激精欧美精品 | 欧美日韩在线一区二区 | 国产欧美一区二区三区在线播放 | 紧缚调教一区二区三区视频 | 草草草影院 | 国产一区二区三区视频 | 四虎影音|