2017-06-16 59 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相結合是爲了確保你從玩家移動到播放器以有序的方式。