0

假设我们打开了两个浏览器,两个玩家相互连接,在 2 个不同的浏览器上玩同一个游戏。游戏状态由 Session 变量记录。游戏完成后,最后一页弹出3个按钮,重新对战,与其他玩家一起玩,断开连接。我如何构建一个解决方案,为第一个按下三个按钮中的任何一个的人提供先到先得的机会。

所以玩家 1 按下重新匹配按钮,在事件处理程序下,它将使玩家 1 的会话中的按钮 2 和按钮 3 不可见,但也应该使玩家 2 的按钮不可见。如何让玩家 1 使玩家 2 的按钮 2 和按钮 3 不可见?

综上所述,玩家 1 按下按钮隐藏 2 个按钮,这迫使玩家 2 的按钮隐藏。玩家 2 还没有行动。

4

1 回答 1

0

我会在你的数据库中创建一个新表,我们称之为“GameOverStatus”。此表应包含以下字段:GameID、FirstPlacePlayerId、SelectedButtonIndex。

每个游戏都有一个唯一的 ID,这一点很重要。此 GameID 应传递给当前游戏的所有玩家。当第一个玩家到达“Game Over”屏幕时,使用当前 GameID 查询 DB 中的 GameOverStatus 表。如果没有匹配,我们知道当前玩家是第一个到达的:插入带有 GameID 和 PlayerID 的 GameOverStatus 记录。在玩家 1 单击按钮(重新匹配、玩家另一个等)后,使用正确的 SelectedButtonIndex 更新数据库中的 GameOverStatus 记录。

随后的玩家将到达此页面,并且将发生相同的操作:检查 GameOverStatus。唯一的区别是现在会有记录。读取记录,然后根据 SelectedButtonIndex,配置 UI 以根据需要显示/隐藏按钮。

于 2012-10-04T04:00:16.227 回答