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

如何讓Lua集成到自己的Android游戲

移動開發 iOS
如何讓Lua集成到自己的Android游戲是本文要介紹的內容,主要是來了解LUA中游戲的開發,一起來看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重寫解釋器的話,我們需要一種方式使C和Java能良好的溝通,熟悉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. /** Called when the activity is first created. */      
  8.  @Override       
  9.  public void onCreate(Bundle savedInstanceState) {          
  10.    LuaState L = LuaStateFactory.newLuaState();          
  11.    L.openLibs();          
  12.    L.LdoString("text = 'Hello Android, I am Lua.'");          
  13.    L.getGlobal("text");          
  14.    String text = L.toString(-1);          
  15.   super.onCreate(savedInstanceState);          
  16.   TextView tv = new TextView(this);          
  17.   tv.setText(text);          
  18.   setContentView(tv);      
  19.  }  

下面是運行結果圖:

如何讓Lua集成到自己的Android游戲

到此Android下的Lua環境就配置好了,至于怎么運用就看各位程序員的設計了。

小結:如何讓Lua集成到自己的Android游戲的內容介紹完了,西瓦過通過本文的學習能對你有所幫助!

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

2011-08-29 09:49:35

LuaAndroid游戲

2011-09-16 10:25:01

Android應用蠟筆大炮游戲

2011-08-24 10:24:54

EditPlusLUA

2011-08-24 11:14:25

LUA 游戲

2022-05-24 10:10:33

顧問CIO首席信息官

2011-08-25 16:38:06

EditPluslua

2020-06-11 08:26:05

信息泄漏密碼網絡安全

2019-06-03 09:11:59

2011-06-02 10:09:18

2011-08-24 14:26:08

Lua游戲腳本

2014-01-02 13:08:38

2022-05-06 10:11:21

開源游戲桌游

2014-07-15 10:34:14

Android游戲引擎

2014-04-03 10:29:27

iOSAndroid跨界平臺

2012-07-31 09:20:15

移動應用市場推廣

2011-05-31 15:56:52

游戲啟動菜單Android

2012-09-11 09:19:35

JavaScriptJSjQ

2010-06-18 10:44:42

職場喜歡

2013-08-21 14:31:27

App推廣選擇合適發行商移動應用市場

2021-11-22 23:42:02

Go監控程序
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品一区二区三区四区 | 国产精品国产精品国产专区不片 | 91毛片网| 黄色免费观看 | 一区二区福利视频 | 久草新在线 | 亚洲人在线 | 超碰人人艹 | 理论片免费在线观看 | 91资源在线 | 2021天天干夜夜爽 | 免费啪啪| 妹子干综合 | 日韩一级黄色片 | 亚洲一区二区三区视频 | 天天躁人人躁人人躁狂躁 | 亚洲精品久久久9婷婷中文字幕 | 欧美日韩综合 | 日韩一级在线 | 在线观看涩涩视频 | 国产一区h | 国产在线视频一区二区 | 久久久成人一区二区免费影院 | 日韩欧美中文在线 | 亚洲精品成人在线 | 久久伦理电影 | 99国产精品久久久 | 91av久久久 | 欧美 日韩 国产 成人 在线 | 国产一级片 | 在线成人av | 97精品视频在线观看 | 亚洲第1页| 天天操天天干天天爽 | 久久久久久久久一区 | 欧美一级二级在线观看 | 超级乱淫av片免费播放 | 99精品福利视频 | 九九色综合 | 日韩欧美在线观看 | av天空|