现在我正在使用Gluon 插件,开始使用JavaFXPorts非常有帮助。我已经准备好我的应用程序,我可以在电脑和手机上使用它。我在带有系统android的手机上进行了测试。应用程序运行良好,但仅适用于我的服务器。
我会处理不同的分辨率,我认为现在这很好。
我想拥有回合制多人应用程序,但使用 Google Play Service仍然存在很大问题。展示如何将此服务用于回合制多人应用程序的教程是用纯 android 编写的并使用 Activity。我的问题可能很简单,但如果我有来自“fxml”的应用程序视图,如何将它用作教程活动?
我想为我的应用程序进行自动匹配,接下来我想要覆盖方法 takeTurn() 以使其适合我的应用程序。
例如,我怎样才能将这样的东西(下面的代码)更改为 JavaFX 中的应用程序?
除了 AndroidPlatformProvider.java 之外,我还必须使用 JavaFX(src/main/java 文件夹) 类中的 google 服务,并且所有方法都必须位于src/android/java文件夹中。我知道我必须使用PlatformService和PlatformProvider。我按照以下示例进行操作:HelloPlatform和SMSTracker。
我使用接口 PlatformProvider 中的方法,但应用程序仍然崩溃。:(
我只使用我的 JavaFX 代码中的 Provider 并且我没有 android Activity。我不知道如何在没有 Activity 或 View 的情况下使用这些方法:
- public void onActivityResult(int request, int response, Intent data)
- public void playTurn(查看视图)
我可以从谷歌服务方法调用我的控制器中的方法来查看(fxml)吗?我不知道这些方法应该如何与 JavaFX 一起使用。
public class TbmpGameActivity extends Activity {
...
@Override
public void onActivityResult(int request, int response, Intent data) {
super.onActivityResult(request, response, data);
...
if (request == RC_SELECT_PLAYERS) {
if (response != Activity.RESULT_OK) {
// user canceled
return;
}
// Get the invitee list.
final ArrayList<String> invitees =
data.getStringArrayListExtra(Games.EXTRA_PLAYER_IDS);
// Get auto-match criteria.
Bundle autoMatchCriteria = null;
int minAutoMatchPlayers = data.getIntExtra(
Multiplayer.EXTRA_MIN_AUTOMATCH_PLAYERS, 0);
int maxAutoMatchPlayers = data.getIntExtra(
Multiplayer.EXTRA_MAX_AUTOMATCH_PLAYERS, 0);
if (minAutoMatchPlayers > 0) {
autoMatchCriteria = RoomConfig.createAutoMatchCriteria(
minAutoMatchPlayers, maxAutoMatchPlayers, 0);
} else {
autoMatchCriteria = null;
}
TurnBasedMatchConfig tbmc = TurnBasedMatchConfig.builder()
.addInvitedPlayers(invitees)
.setAutoMatchCriteria(autoMatchCriteria)
.build();
// Create and start the match.
Games.TurnBasedMultiplayer
.createMatch(mGoogleApiClient, tbmc)
.setResultCallback(new MatchInitiatedCallback());
}
}
}
或类似的东西:
// Call this method when a player has completed his turn and wants to
// go onto the next player, which may be himself.
public void playTurn(View view) {
// Get the next participant in the game-defined way, possibly round-robin.
String nextParticipantId = getNextParticipantId();
// Get the updated state. In this example, we simply retrieve a
// text string from the view. In your game, there may be more
// complicated state.
mTurnData = mDataView.getText().toString();
// At this point, you might want to show a waiting dialog so that
// the current player does not try to submit turn actions twice.
showSpinner();
// Invoke the next turn. We are converting our data to a byte array.
Games.TurnBasedMultiplayer
.takeTurn(mGoogleApiClient, mMatch.getMatchId(),
mTurnData.getBytes(Charset.forName("UTF-16")),
nextParticipantId)
.setResultCallback(this);
}