【问题标题】:Getting GPS position with libgdx使用 libgdx 获取 GPS 位置
【发布时间】:2013-04-14 13:54:34
【问题描述】:

我想在玩游戏时获取用户的 gps 位置 (libgdx)。我找到了this 为安卓手机创建 GPSTracker 的教程。我的问题是,这是为 Android 活动/任务编写的,而不是为 libgdx 编写的。没有 libgdx 它可以完美运行,但我不知道如何将它与 libgdx 和 there isn't any opportunity 一起使用,以便将 gps 与 libgdx 一起使用。

有人知道是否可以通过 libgdx 使用 GPS 以及如何使用?会很不错的。

【问题讨论】:

    标签: android gps libgdx


    【解决方案1】:

    您可以从 Android 项目包装器创建您的 GPSTracker 并将其传递给 Game 实例。

    这是我做的测试。-

    GPSTracker gps = new GPSTracker(MainActivity.this);
    MyGame game = new MyGame(gps.getLatitude(),  gps.getLongitude());
    

    GPSTracker 很好地返回了我当前的坐标。

    【讨论】:

    • 我试过这个,但我的问题是,GPSTracker 类需要Context 类型的值。在 android 项目中,我提交了MainActivity.this,但是当使用 libgdx 时,contentView 不在 MainActivity...
    • Mmh 刚刚尝试过,它似乎正在工作并返回正确的坐标(我正在编辑我的答案)。你有什么例外吗?
    • 当然可以,但我想在游戏的深层子类中初始化 GPSTracker。当然,我可以将它提交给每个子类,但是它会保存在每个子类中。没有更好的选择吗?
    • 好吧抱歉,它适用于单例类,但仅在启用 gps 时。如果不是,则没有消息可以打开它(但它应该)并且它崩溃了..
    • 我想我已经解决了:我在 MainActivity 中使用initializeForView() 获得了 libgdx 的视图,请参见:code.google.com/p/libgdx-users/wiki/NativeUIConfirmDialog
    【解决方案2】:

    您可以从 Applicaion 对象中获取上下文对象(看这个:Static way to get 'Context' on Android?),然后使用连接构造 GPSTracker 类。

    【讨论】:

    • 有一个问题:MainActivity 类在 android 项目中,所以我不能从任何其他类调用MainActivity.getAppContext()(在我的情况下它是渲染器类)。
    • 是的。因此,您可以从 Application Class 的静态方法中获取上下文,当您的应用程序的任何组件运行时,Application 对象将被维护。
    【解决方案3】:

    要将上下文传递给 GPSTracker,请在 AndroidLauncher.java 中的 onCreate 方法中使用“getApplicationContext()”进行尝试

    AndroidLauncher.context = getApplicationContext();
    this.gps = new GPSTracker(this.context);
    
    AndroidApplicationConfiguration config = new AndroidApplicationConfiguration();
            initialize(new MyGdxGame(gps.getLatitude(),  gps.getLongitude()), config);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-12-01
      • 2017-04-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-05
      相关资源
      最近更新 更多