libGDX是一個開源的遊戲框架,其優點是兼容性很是好,可兼容多種平臺系統(Windows、Linux、Max OS X、Java Applet、Javascript/WebGL),包括移動系統Android和iOS,而且使用的是最爲普遍的java語言來進行開發,所以前景至關不錯。最近有很多開發者問到關於如何配合使用BmobSDK和libGDX來開發ios遊戲,這其中大部分都是隻接觸過Android的開發者(引擎使用java開發的緣由),對於ios不熟悉,所以在使用的過程當中會遇到一些問題。所以,本文將詳細地講解如何搭建開發環境,並介紹如何在libGDX如何使用BmobSDK進行iOS遊戲的開發。html
搭建開發主要有如下兩大部分java
RoboVM的搭建android
libGDX的環境搭建ios
如下文字摘自百度百科git
RoboVM 編譯器能夠將 Java 字節碼翻譯成 ARM 或者 x86 平臺上的原生代碼,應用可直接在 CPU 上運行,無需其餘解釋器或者虛擬機。
RoboVM 同時包含一個 Java 到 Objective-C 的橋,可像其餘 Java 對象同樣來使用 Objective-C 對象。大多數 UIKit 已經支持,並且將會支持更多的框架。
RoboVM相似於Android的jni,使用它就可使用Java來調用Object-C對象,用Java進行iOS開發。github
安裝Java JDK,注意須要1.7以上才支持RoboVMweb
下載eclipse數據庫
安裝RoboVM插件,具體步驟以下:
1)進入 help/install New Software
2)輸入http://download.robovm.org/eclipse/下載插件,完成後重啓便可
框架
注:在RoboVM官方搭建文檔(http://docs.robovm.com/getting-started/eclipse.html)中也有如何安裝RoboVM的教程,具體的安裝步驟以及安裝參數(以下載連接)請以官方教程爲準。eclipse
安裝完成後,重啓eclipse,進入File/New/Project便可看到RoboVM工程的建立圖標,若是你真是想用java來開發iOS應用,那麼進行到這一步已經大功告成了😎。
進入libGDX官網(http://libgdx.badlogicgames.com/download.html)下載libGDX工程生成工具,該工具是一個jar應用。
進入gdx-setup,設置好相應的參數,並選好須要開發的平臺的子項目便可。此處選取了ios、desktop及html三個平臺,須要開發android平臺的還須要在Android子項目處勾選上。
點擊生成,第一次生成須要下載一些文件,時間會比較久,當出現 BUILD SUCCESSFUL
提示時,說明項目已經建立好了,以下圖所示。
在上圖中咱們能夠看到生成工程後,會提示在不一樣的IDE要怎麼打開,在eclipse中打開是須要以gradle工程來打開,這須要咱們安裝Gradle插件,咱們能夠進入 help/Eclipse Marketplace
搜索該插件進入安裝(別問我爲何安裝RoboVM時爲何不用這個方法,由於搜索不到啊😂),
安裝完成後,進 File/Import/Gradle/Gradle Project
,導入剛剛生成的工程,注意提示,導入前須要先點擊 Build Model
按鍵。
導入後的能夠看到在 Package Explorer
中生成了如下工程,其中core工程用以編寫與平臺無關的代碼,而以對應平臺名結尾的工程則是編寫對應平臺的邏輯代碼,以項目名爲名的工程(本文中爲test)主要存放一些公共環境的配置代碼。
建好工程後能夠按下圖所示,跑一下工程,查看工種是否搭建成功。模擬器能夠選擇iPad或者iPhone,第一次運行時因爲須要編譯一些公共包,時間會比較久。
運行後的效果圖
按照教程完成上述的工程建立後就能夠進行開發了。下面將講述如何使用BmobSDK.framework進行開發。
導入BmobSDK.framework,以下圖所示,直接將文件拖動至ios子項目的build目錄下。
進入robovm.xml添加如下代碼,聲明相應的依賴庫。
編寫綁定文件。若是但願知道如何綁定,能夠參考博客libgdx與Robovm綁定的坑。固然,爲了儘快體驗一下效果,咱們能夠直接使用該博客的做者愛學習的壞蛋
寫好的一個綁定庫https://github.com/tianqiujie/robovm-ios-bindings,這裏面有已經綁定好的BmobSDK庫,咱們直接將這些文件加入到工程便可。以下圖
接下來,咱們還須要到Bmob官網註冊一個賬號並在後臺建立應用,並將App Key複製下來。以下圖
至此,準備工做已經所有完成,咱們嘗試寫一段代碼以測試項目是否能夠工做。在IOSLauncher.java文件中的protected IOSApplication createApplication() 方法中添加如下代碼
@Override
protected IOSApplication createApplication() {
IOSApplicationConfiguration config = new IOSApplicationConfiguration();
//註冊應用
Bmob.registerWithAppKey("4bf74404e49b7b5ff7f23c4496ee2b36");
//構造須要添加的記錄
final BmobObject gameScore = new BmobObject("GameScore");
gameScore.setObject(new NSString("小明"), "playerName");
gameScore.setObject(NSNumber.valueOf(100), "score");
gameScore.setObject(NSNumber.valueOf(true), "cheatMode");
//保存記錄
gameScore.saveInBackgroundWithResultBlock(new BmobBooleanResultBlock() {
@Override
public void invoke(boolean isSuccessful, NSError error) {
// TODO Auto-generated method stub
if(isSuccessful){
System.out.println("success");
//獲取建立成功後的BmobObject的 objectId
System.out.println(gameScore.getObjectId());
}else{
System.out.println(error.getCode()+error.getDomain());
}
}
});
return new IOSApplication(new MyGdxGame(), config);
}
運行工程,能夠看到如下log。
進入Bmob後臺,能夠看到已經生成了一條數據庫記錄。
本教程主要講解如何搭建libGDX開發環境,並結合BmobSDK來進行開發。若是在對文章有任何疑問或者發現錯誤之處,歡迎提出😄😄