我有一个可以正常使用的多人游戏(测验)。我有一个游戏计时器(在e.x 90秒后结束),我有一个后退方法(如果玩家按下后退按钮,他就会放松并得分为0)。
我的问题是,如果两个玩家之一关闭了应用程序(或什至处于撤退状态),该如何发送消息游戏结束并进入获胜活动?展示游戏创建代码很有用:
private void initializeGameModel() {
mGameModel = new GameModel();
mGameModel.setId(mGameWaitModel.getId());
mGameModel.setGameMaster(getPlayerModel(true));
mGameModel.setGameSlave(getPlayerModel(false));
mGameModel.setGenerateNewQuestion(true);
mGameModel.setDidGameEnd(false);
LOGD(TAG, "Game Model initialized");
}
和Firebase初始化:
private void initializeFirebase() {
mGameFirebase = FirebaseDatabase.getInstance()
.getReferenceFromUrl(Constants.FIREBASE_BASE_URL + Constants.FIREBASE_TEST_PATH + Constants.FIREBASE_GAME_ACTIVE_PATH + mGameWaitModel.getId());
mGameFirebase.setValue(mGameModel);
mGameFirebase.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
mGameModel = dataSnapshot.getValue(GameModel.class);
if (mGameModel == null) {
return;
}
try {
if (mGameModel.isGenerateNewQuestion()) {
mGameModel.getGameMaster().setDidPlayerAnswer(false);
mGameModel.getGameMaster().setPlayerAnswerCorrect(false);
mGameModel.getGameSlave().setDidPlayerAnswer(false);
mGameModel.getGameSlave().setPlayerAnswerCorrect(false);
}
if (isGameMaster() && mGameModel.isGenerateNewQuestion()) {
generateNewQuestion();
mGameModel.setGenerateNewQuestion(false);
mGameFirebase.setValue(mGameModel);
return;
}
实际上,我需要的是当两个用户之一撤退时,关闭应用程序(按“主页”按钮)游戏(对于两个用户)都结束,并使用代码进行最终游戏。
在此先感谢您的帮助和努力!
答案 0 :(得分:0)
您可以使用composer show
或onPause
函数在firebase中将DidGameEnd属性设置为true。如果将侦听器添加到DidGameEnd属性,则如果其中一个用户暂停了该应用程序或退出了该应用程序,则可以通知其他用户,因为您将在其他用户应用程序中更改该属性。
答案 1 :(得分:0)
您可以通过以下方式进行操作:
onPause
,onResume
(按主页按钮),
onClose
和onDestroy
(以检测应用程序销毁/关闭),
onBackPressed
(两个用户撤退)