Qualcuno ha qualche consiglio su come archiviare dati da libGDX su Android in SQLite. Ho molta familiarità con le tecniche utilizzate nell'SDK di Android ma non ho idea di come chiamare quelle funzioni del database Android da libGDX. So che chiamare le funzioni di libGDX renderà il mio gioco inutilizzabile sul desktop ma posso affrontarlo.Utilizzo di SQLite da libGDX su Android
risposta
Un approccio è sempre quello di creare un'interfaccia nel progetto principale, chiamiamolo NativeFunctions
. Quindi lascia che sia il desktop sia l'applicazione/attività Android implementino questa interfaccia. Quando crei il tuo progetto principale, passi l'applicazione/l'attività. Nell'applicazione principale si mantiene un riferimento all'interfaccia passata e si utilizza questa funzione per chiamare funzioni native, che è possibile implementare per desktop e Android separatamente (non rendendo inutilizzabile il gioco sul desktop, è possibile utilizzare anche SQLite;).
Ok, che è stato complicato, quindi cerchiamo di vederlo in azione (definizione di una funzione per aprire un URL):
L'interfaccia:
public interface NativeFunctions {
public void openURL(String url);
}
La classe principale:
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");
}
}
Implementazione 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);
}
}
L'implementazione del desktop:
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
}
}
Questo è tutto, l'implementazione di utilizzare SQLite dovrebbe probabilmente essere lungo lo stesso percorso. Btw. Penso che sia anche il modo di integrare i box pubblicitari e di parlare al sistema in generale.
- 1. Utilizzo di un database SQLite in Libgdx
- 2. Utilizzo di in-memory sqlite android
- 3. Libgdx app.exit() su Android che non chiude l'applicazione
- 4. Distribuisci libgdx a html5 su android studio
- 5. Utilizzo della memoria in LibGdx
- 6. sqlite android sqlite sincronizzazione sqlite
- 7. Utilizzo di file SVG con libgdx
- 8. Utilizzo di unProject correttamente in Java Libgdx
- 9. Utilizzo di tesseract su Android
- 10. LibGDX all'interno dell'attività Android
- 11. tabelle di relazione in sqlite su android
- 12. Livello di scripting per Android - LibGDX
- 13. Utilizzo di XMLBeans su Android
- 14. Utilizzo di Docker su Android
- 15. Utilizzo di Groovy su Android
- 16. Cercando di eseguire il gioco Android usando libgdx su Genymotion
- 17. Utilizzo di SQLite nel codeigniter
- 18. Utilizzo di SQLite con ASP classico
- 19. Utilizzo del file personalizzato per database SQLite Android
- 20. Ottenere tutti i record da SQLite Android
- 21. Flushing e database SQLite su Android
- 22. H2 Database vs SQLite su Android
- 23. Sqlite Seleziona query con rawQuery su Android
- 24. Utilizzo di libusb su Android senza rooting
- 25. Utilizzo di SQLite con std :: iostream
- 26. Utilizzo di python e matplotlib su Android
- 27. Risoluzione fullscreen su Android per i giochi libgdx
- 28. Android: utilizzo di JNI da NativeActivity
- 29. Rilevare transazioni SQLite dimenticate su Android utilizzando StrictMode?
- 30. Gestione di tabelle SQLite e cursori su Android
Fantastico! Ha funzionato perfettamente! Questa è una buona conoscenza da avere per molte situazioni. Grazie per l'aiuto. Sembra che tu abbia risposto a tutte le mie domande ultimamente haha. –
Prego! In realtà, sto usando LibGDX abbastanza frequentemente e dato che StackOverflow ha già risposto a molte delle mie domande, sono felice di restituire qualcosa;). – dom