与同伴离开房间的同伴之间有什么不同。
如果房客与房间断开连接,他的身份会是什么? STATUS_JOINED或STATUS_LEFT?
我正在进行一个相当长的回合制游戏(应该是几分钟的游戏),我相信会有很多我想要解决的断线案例。
是否可以向断开连接的用户重新发送邀请并让他回到房间?
如果房间创建者断开连接,并且可以使用previuse,重新连接后他仍然会成为该游戏的创建者吗?
答案 0 :(得分:3)
第一个警告是,实时多人游戏API并不适用于回合制游戏。因此,如果有人从房间里掉了下来,他们就无法重新加入;此外,如果您的活动进入后台,您将无法留在房间内。现在,来回答这个问题:
如果参与者离开房间,他们的状态为STATUS_LEFT。如果他们在房间但尚未到达(即播放器还不是P2P连接图的一部分),他们可能处于STATUS_JOINED状态,但没有连接。此外,由于存在错误,您可能会看到有STATUS_LEFT但仍报告为已连接的参与者。因此,在您检查参与者是否“确实存在”的逻辑中,您应该检查它们是否处于STATUS_JOINED状态和连接(不仅仅是其中一个)。
您无法向已断开连接的用户重新发送邀请以将其重新送回会议室。但如果所有玩家都拥有游戏状态,那么没有什么能阻止你从头开始建造一个新的房间来继续比赛。当然,这不适用于自动匹配(因为你不能要求新的房间与旧的房间具有相同的参与者),但是当玩家与他们的圈子中的朋友一起玩时会起作用。
没有“房间所有者”这样的东西 - 它是P2P对称网络。如果玩家A创建房间并邀请玩家B和玩家C,则玩家A可以离开房间并且房间仍将对玩家B和C工作。不要求房间的创建者留在房间内。
希望这有帮助!