現在、Gluon プラグインを使用しており、 JavaFXPorts の使用を開始すると非常に役立ちます。アプリケーションの準備ができており、コンピューターと電話で使用できます。システムアンドロイドを搭載した電話でテストしました。アプリケーションは正常に動作していますが、私のサーバーでのみです。
さまざまな解像度に対応していますが、今のところは良いと思います。
ターンベースのマルチプレイヤー アプリケーションが必要ですが、 Google Play Serviceの使用にはまだ大きな問題があり ます。このサービスをターンベースのマルチプレイヤー アプリケーションに使用する方法を示すチュートリアルは、純粋な Android で記述され、Activity を使用します。私の質問はおそらく非常に単純ですが、「fxml」からアプリケーションビューを持っている場合、それをチュートリアルアクティビティとして使用するにはどうすればよいですか?
アプリケーションの自動マッチングを行いたいのですが、次にメソッド takeTurn() をアプリケーションに合わせてオーバーライドしたいと考えています。
たとえば、そのようなもの(以下のコード)をJavaFXのアプリケーションに変更するにはどうすればよいですか?
AndroidPlatformProvider.java に加えて、JavaFX (src/main/java フォルダー) クラスから Google サービスを使用する必要があり、すべてのメソッドはsrc/android/javaフォルダーにある必要があります。PlatformServiceとPlatformProviderを使用する必要があることはわかっています。例のように行いました: HelloPlatformおよびSMSTracker。
インターフェイス PlatformProvider のメソッドを使用していますが、アプリケーションは依然としてクラッシュします。:(
私は JavaFX のコードからプロバイダーのみを使用しており、Android アクティビティはありません。Activity または View なしでこれらのメソッドを使用する方法がわかりません。
- public void onActivityResult(int リクエスト、int レスポンス、Intent データ)
- public void playTurn(View ビュー)
ビュー (fxml) のコントローラーから Google サービス メソッドからメソッドを呼び出すことはできますか。これらのメソッドが 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);
}