我希望在用户从我的Android应用程序登录'/'登录'到libgdx游戏后传递一些凭据数据。
首先我想问你 - 使用意图开始我的游戏是不错的做法?
我已将manifest.xml文件中的启动活动声明为.LoginActivity(例如),然后在用户执行某些操作后 - android端正在使用下一个代码启动游戏:
public class SomeTest {
private HBaseTestingUtility testingUtil = new HBaseTestingUtility();
@Before
public void setup() throws Exception {
testingUtil.startMiniDFSCluster(1);
}
@After
public void tearDown() throws IOException {
testingUtil.shutdownMiniDFSCluster();
}
@Test
public void test() throws Exception {
DistributedFileSystem fs = testingUtil.getDFSCluster().getFileSystem();
final Path dstPath = new Path("/your/path/file.txt);
final Path srcPath = new Path(SomeTest.class.getResource("file.txt").toURI());
fs.copyFromLocalFile(srcPath, dstPath);
...
}
}
是否有一些最佳实践如何从活动开始我的游戏?
另一个相关问题是 - 如何将数据从android acitivity传递给libgdx游戏?
我在此链接中看到了一些建议:https://github.com/libgdx/libgdx/wiki/Interfacing-with-platform-specific-code。
我还没有使用Swarm框架(可能稍后),我想使用自己的接口将数据传递给游戏。
我已经声明了下一个界面:
private void initializeListeners(){
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(getBaseContext(), AndroidLauncher.class);
startActivity(intent);
}
});
}
并在游戏核心部分的Screen实现中实现它,像这样:
public interface DataPasser {
void passData(String userName);
}
我只是用传递的数据绘制一个字符串。
主要问题是 - 什么时候应该在我的android部分调用这个方法?
我正在调用Intent,游戏开始时没有在意图中传递数据 - 这就是为什么我问 - 什么是开始游戏的最佳方式。
我应该如何传递数据并开始游戏 - 请提出建议。
答案 0 :(得分:1)
你的代码不多,所以很多都是一般的提示。
在核心模块中,添加一个带有所需参数的构造函数(LibGDX游戏本身,假设您使用了项目生成器)。
添加一个构造函数,您可以在其中输入两个字符串:用户名和密码。
您使用Intent将数据从一个活动传递到游戏活动,游戏活动将Strings发送到游戏的构造函数。
答案 1 :(得分:0)
在这里编写你的android活动并在构造函数中传递userName。
class AndroidLauncher : AndroidApplication() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState);
AndroidApplicationConfiguration config = AndroidApplicationConfiguration()
//pass your name here
mainClass = ApplicationCore("username");
initialize(mainClass, config);
}
/*
* all stuff code
*/
}
这是你的核心mainClass。
public class ApplicationCore extends ApplicationAdapter {
public String userName;
public ApplicationCore(String userName) {
this.userName=userName;
// use this username whenever you want.
}
@Override
public void create() {
initGame();
}
private void initGame() {
//write code for initialize
}
@Override
public void render() {
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
//render functionalities
}
@Override
public void dispose() {
batch.dispose();
}
@Override
public void resume() {
super.resume();
}
@Override
public void pause() {
super.pause();
}
}