Libgdx的使用(14)——基于RoboVM对IOS平台的支持

Libgdx这款跨平台的游戏开发引擎,我之前的很多文章都介绍过了,可以点击Libgdx查看。
Libgdx在0.99版本正式加入对IOS的支持。
Libgdx之前其实也是支持IOS的,只是需要先转化成C#,然后使用收费的工具实现。
而现在Libgdx使用了RoboVM,这是开源免费的。目前已经有超过百款的Libgdx游戏发布到App Store了。

RoboVM
RoboVM将Java的字节码转为本地代码,并封装了UI和各种API。这样可以最大程度重用你原有的Java代码。
RoboVM需要一个Mac OS X,虽然在其他平台,比如ubuntu,也是可以使用的。不过为了更好的集成和开发,最好还是入手一个Mac吧。
RoboVM提供了Eclipse插件,安装地址:http://download.robovm.org/eclipse/。
插件安装

在安装完成后复制以下代码测试以下:
import org.robovm.cocoatouch.coregraphics.*;
import org.robovm.cocoatouch.foundation.*;
import org.robovm.cocoatouch.uikit.*;
public class IOSDemo extends UIApplicationDelegate.Adapter {
    private UIWindow window = null;
    private int clickCount = 0;
    @Override
    public boolean didFinishLaunching(UIApplication application,
            NSDictionary launchOptions) {
  
        final UIButton button = UIButton.fromType(UIButtonType.RoundedRect);
        button.setFrame(new CGRect(115.0f, 121.0f, 91.0f, 37.0f));
        button.setTitle("Click me!", UIControlState.Normal);
        button.addOnTouchUpInsideListener(new UIControl.OnTouchUpInsideListener() {
            @Override
            public void onTouchUpInside(UIControl control, UIEvent event) {
                button.setTitle("Click #" + (++clickCount), UIControlState.Normal);
            }
        });
        window = new UIWindow(UIScreen.getMainScreen().getBounds());
        window.setBackgroundColor(UIColor.lightGrayColor());
        window.addSubview(button);
        window.makeKeyAndVisible();
        
        return true;
    }
    public static void main(String[] args) {
        NSAutoreleasePool pool = new NSAutoreleasePool();
        UIApplication.main(args, null, IOSDemo.class);
        pool.drain();
    }
}

右键点击Run as—iOS Simulator App即可看到效果。

Libgdx和RoboVM
因为对于多数开发者而言,你是希望的是发布游戏到App Stroe,所以除了Mac以外,你还需要一个开发者认证。
建议使用setup-ui工具,这样可以免去不少烦心的配置。
导入项目后可以直接运行查看效果。
虽然原理上你可以不会oc就进行相关操作,因为RoboVM还没有完全成熟,遇上问题你需要自己解决。
对于早期的这个错误,比如java.lang.NoSuchMethodError等等,解决问题所需要的只是升级RoboVM和它的插件。
使用构建工具是一个不错的选择,比如Gradle。具体的配置可以参考RoboVM Sample iOS App。
主要的配置就是
apply plugin: 'robovm'
buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.github.jtakakura:gradle-robovm-plugin:0.0.5'
    }
}

第三方服务的集成
Libgdx对IOS的支持中另外一个问题就是第三方SDK的集成。特别是对广告和应用内付费的集成。
这些问题其实是RoboVM的,而不是Libgdx,所以寻求帮助时需要明确对象。
robovm-ios-bindings是一个较好的选择,它支持大量第三方服务,如:
adcolony
admob
chatboost
crashlytics
facebook
flurry
gamecenter


使用步骤如下:
下载这个项目
导入Eclipse
将你需要的依赖加入Eclipse
打开robovm.xml
从项目中复制你需要的配置到robovm.xml中
在代码中使用
该项目的包名为org.robovm.bindings.bindingname,比如admob就是org.robovm.bindings.admob.sample。
对于每种服务都有例子,可以放心大胆使用。

遇到问题怎么办
首先区分问题是属于Libgdx-RoboVM-backend还是RoboVM的。
如果属于RoboVM的去RoboVM的社区,如果是Libgdx的先尝试nightly版本,如果问题依旧请前往英文社区提交。
大部分问题都是繁琐且细致的,在QQ群询问很难得到准确的帮助。


参考

使用RoboVM发布Libgdx游戏

RoboVM官网

GDX Super Jumper


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值