我正在实施这个并让它工作 90%。当我的游戏进入新的回合时,我会检查下一个玩家是机器人还是人类玩家。这是使用座位算法预先安排的,因此我可以整齐地隔开人类。即当有两个人类玩家时相反。当下一个玩家是 BOT 时,我会转一圈,但不要让参与者前进。这样,它将持续存在并发送更新,而无需将轮到其他玩家。当下一个玩家是人类时,我会转身并切换到下一个玩家。代码看起来像这样......
如果(玩家[playerTurn%4]==BOT){
Games.TurnBasedMultiplayer.takeTurn(MainActivity.mHelper.getApiClient(), MainActivity.mMatch.getMatchId(),
MainActivity.mTurnData.persist(), myParticipantId).setResultCallback(
新的 ResultCallback() {
@覆盖
公共无效 onResult(TurnBasedMultiplayer.UpdateMatchResult 结果){
处理结果(结果);
}
});
state = GameState.Playing;
} else {
Games.TurnBasedMultiplayer.takeTurn(MainActivity.mHelper.getApiClient(), MainActivity.mMatch.getMatchId(),
MainActivity.mTurnData.persist(), nextParticipantId).setResultCallback(
new ResultCallback<TurnBasedMultiplayer.UpdateMatchResult>() {
public void onResult(TurnBasedMultiplayer.UpdateMatchResult result) {
processResult(result);
}
});
state = GameState.multiplayerWait;
}
我不确定如何将不活跃的玩家与其他玩家交换。除非您运行自己的服务器或使用 Parse 之类的东西,否则我认为这是不可能的。