2012-03-06 25 views
10

Czy ktoś ma jakieś wskazówki dotyczące przechowywania danych z libGDX na Androida w SQLite. Jestem bardzo zaznajomiony z technikami stosowanymi w Android SDK, ale nie mam pojęcia, jak wywołać te funkcje bazy danych Androida z libGDX. Wiem, że wywoływanie funkcji z libGDX sprawi, że moja gra stanie się bezużyteczna na pulpicie, ale mogę sobie z tym poradzić.Korzystanie z SQLite z libGDX na Androidzie

Odpowiedz

12

Jednym ze sposobów jest stworzenie interfejsu w głównym projekcie, nazwijmy go: NativeFunctions. Następnie pozwalasz, aby zarówno twój komputer, jak i twoja aplikacja/aktywność Androida zaimplementowały ten interfejs. Po utworzeniu głównego projektu przekazujesz aplikację/aktywność razem. W głównej aplikacji zachowujesz referencję do przejętego interfejsu i używasz go do wywoływania natywnych funkcji, które możesz zaimplementować osobno dla komputerów i Androida (nie czyniąc twojej gry bezużyteczną na pulpicie, możesz tam również użyć SQLite;).

Ok, to było skomplikowane, więc zobaczymy go w akcji (definiowanie funkcji, aby otworzyć URL):

Interfejs:

public interface NativeFunctions { 
    public void openURL(String url); 
} 

Główna klasa:

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"); 
    } 
} 

Implementacja systemu 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); 
    } 
} 

Realizacja pulpit:

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 
    } 
} 

To jest to, implementacja używać SQLite powinien prawdopodobnie wzdłuż tej samej drogi. Btw. Myślę, że to także sposób na integrację skrzynek reklamowych i rozmowę z systemem w ogóle.

+2

Awesome! Działa doskonale! Jest to dobra wiedza do wielu sytuacji. Dzięki za pomoc. Wydajesz się odpowiadać na wszystkie moje pytania ostatnio haha. –

+2

Nie ma za co! Właściwie używam LibGDX dość często i jak stackoverflow już odpowiedział na wiele moich pytań, jestem szczęśliwy, aby dać coś z powrotem;). – dom

Powiązane problemy