在 Android 上使用来自 libGDX 的 SQLite

Posted

技术标签:

【中文标题】在 Android 上使用来自 libGDX 的 SQLite【英文标题】:Using SQLite from libGDX on Android 【发布时间】:2012-03-24 00:08:19 【问题描述】:

有没有人有任何关于在 SQLite 中在 android 上存储来自 libGDX 的数据的提示。我非常熟悉 Android SDK 中使用的技术,但我不知道如何从 libGDX 调用这些 Android 数据库函数。我知道从 libGDX 调用函数会使我的游戏无法在桌面上使用,但我可以处理。

【问题讨论】:

【参考方案1】:

一种方法总是在您的主项目中创建一个接口,我们称之为NativeFunctions。然后让您的桌面和 Android 应用程序/活动都实现此接口。在创建主项目时,您将传递应用程序/活动。在您的主应用程序中,您保留对传递接口的引用并使用它来调用本机函数,您可以分别为桌面和 Android 实现这些函数(不会使您的游戏在桌面上无法使用,您也可以在那里使用 SQLite;)。

好的,这很复杂,让我们来看看它的实际效果(定义一个打开 URL 的函数):

界面:

public interface NativeFunctions 
    public void openURL(String url);

主类:

public class MyGame extends Game/ApplicationListener 
    public NativeFunctions mNativeFunctions;

    public MyGame(NativeFunctions nativeFunctions) 
        mNativeFunctions = nativeFunctions;
    
    // Exemplary function call, of course this doesn't make sense in render() ;)
    public void render() 
        mNativeFunctions.openURL("http://www.example.com");
    

Android 实现:

public class MyGameActivity extends AndroidApplication implements NativeFunctions 
    public void onCreate(Bundle savedInstanceState) 
        super.onCreate(savedInstanceState);
        initialize(new MyGame(this), false);
    
    public void openURL(String url) 
        Intent viewIntent = new Intent("android.intent.action.VIEW", 
            Uri.parse(url));
        startActivity(viewIntent);  
    

桌面实现:

public class MyGameDesktop implements NativeFunctions 
    public static void main(String[] args) 
        MyGameDesktop game = new MyGameDesktop();
        new LwjglApplication(new MyGame(game), "MyGame", 800,
             480, false);
    
    public void openURL(String url) 
        // Your implementation to open URL on dekstop
    

就是这样,您使用 SQLite 的实现可能应该遵循相同的方式。顺便提一句。我认为这也是整合广告框并与一般系统对话的方式。

【讨论】:

太棒了!工作完美!对于许多情况,这是一个很好的知识。谢谢您的帮助。你最近似乎在回答我所有的问题哈哈。 不客气!实际上,我经常使用 LibGDX,因为 *** 已经回答了我的很多问题,我很乐意回馈一些东西;)。

以上是关于在 Android 上使用来自 libGDX 的 SQLite的主要内容,如果未能解决你的问题,请参考以下文章

Libgdx 游戏在 Android 上崩溃

Android 脚本层 - LibGDX

在 android studio 上部署 libgdx 到 html5

在Android上使用libgdx-box2d物理引擎

LibGDX HelloWorld 项目在 Android 模拟器上运行时崩溃

如何更改我的 android 游戏的图片/标志? - libGDX [重复]