2017-06-16 64 views
0

我正在使用firebase构建游戏。在那场比赛中有很多球员在玩球。游戏是我认为它被称为转向基础。 因为只有一个玩家可以画画,而其他玩家应该猜得像一个简单的画画和猜测。 我的问题是我如何才能实现,只有一个球员可以画而别人猜测。 我的想法是给房间里的每个玩家布置一个像bool isTurn;的布尔值,如果玩家真的可以画。当然每个房间里总有一个真正的布尔。 我的问题是,如果它可以这样工作,如果有更聪明的方法来处理这个问题?群组turn基础游戏

+0

我建议你试试GameDev:https://gamedev.stackexchange.com/ –

+1

我在2017年的I/O会议上做了一个关于构建基于Firebase的回合制游戏的会议。您可以将状态管理安全地卸载到Firebase的Cloud Functions上,而不用尝试在客户端上对其进行编码。 https://www.youtube.com/watch?v=eWj6dxfN63g –

回答

1

我会建议使用类似状态机的方法并使用填充玩家的枚举器。例如:

public enum Turn { PLAYER_1, PLAYER_2, PLAYER_3; }

,然后递增这些作为玩家的回合改变。一个布尔值可能会起作用,但可能比你喜欢的更复杂。

1

如果某些东西必须是唯一的,我通常将其作为Firebase数据库中的关键字进行建模。由于密钥保证在其上下文中是唯一的,这确保了我永远不会犯一个弄乱独特性的错误。

在你的情况,这可能意味着你必须包含用户的轮到的UID属性:

games 
    $gameid 
    playerWhoseTurnItIs: $uid 

您可以用伊斯顿的FSM相结合是为了确保你从玩家移动到播放器以有序的方式。