簡體   English   中英

在Android上使用libGDX中的SQLite

[英]Using SQLite from libGDX on Android

有沒有人有任何關於在SQLite中在Android上存儲libGDX數據的提示。 我非常熟悉Android SDK中使用的技術,但我不知道如何從libGDX調用這些Android數據庫函數。 我知道從libGDX調用函數會使我的游戲在桌面上無法使用,但我可以處理它。

一種方法是始終在主項目中創建一個接口,讓我們稱之為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的實現可能應該是一樣的。 順便說一句。 我認為這也是整合廣告盒和與系統交談的方式。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM