有没有人有任何关于在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的实现可能应该是一样的.顺便说一句.我认为这也是整合广告盒和与系统交谈的方式.
【说明】:本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!