Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Appwarp:随机玩家配对问题_C#_Network Programming_Windows Phone_Multiplayer_Appwarp - Fatal编程技术网

C# Appwarp:随机玩家配对问题

C# Appwarp:随机玩家配对问题,c#,network-programming,windows-phone,multiplayer,appwarp,C#,Network Programming,Windows Phone,Multiplayer,Appwarp,我正在为windows phone游戏设置多人配对功能,使用。我遵循了以下文档:并成功地设置了“按ID查找朋友”函数,但遇到了与随机对手配对的问题 我正在创建一个字典,如下所示: public class Matchmake : Microsoft.Xna.Framework.Game { public static Dictionary<string, object> tableProperties = new Dictionary<string, object>

我正在为windows phone游戏设置多人配对功能,使用。我遵循了以下文档:并成功地设置了“按ID查找朋友”函数,但遇到了与随机对手配对的问题

我正在创建一个字典,如下所示:

public class Matchmake : Microsoft.Xna.Framework.Game
{
    public static Dictionary<string, object> tableProperties = new Dictionary<string, object>();

    protected override void Initialize()
    {
        tableProperties.Add("IsPrivateRoom", "false");
    }
}
在我的房间请求侦听器中,它会检查结果:

public void onJoinRoomDone(RoomEvent eventObj)
    {
        if (Matchmake.searchGame == true)
        {
            if (eventObj.getResult() == WarpResponseResultCode.SUCCESS)
            {
                if (Matchmake.hostingRandomGame == false)
                {
                    Matchmake.UIstate = 7;
                    Matchmake.idRef = eventObj.getData().getId();
                }
                Matchmake.warpClient.SubscribeRoom(Matchmake.idRef);
            }
            else
            {
                Matchmake.warpClient.CreateRoom("CreatedRoom", Matchmake.localUsername, 2, Matchmake.tableProperties);
                Matchmake.UIstate = 8;
            }
        }
在完成其余的代码和调试后,我可以看到房间是从Else代码为player1创建的,他们已经订阅并获得实时更新。但是,当player2在另一部手机上执行相同的代码时,它在通过字典查找房间后并没有得到成功的结果,而是通过执行Else代码来创建一个新游戏。这也不是由hostingRandomGame bool引起的。 有人有什么想法吗?任何帮助都将不胜感激,我在API文档中找不到解决方案,我在这方面已经走到了死胡同。
-XDev

从第一个客户加入房间后-您是否有机会更新房间的属性?你在谢泼茨博客上看到的弹射器战争样本也有同样的问题吗?嗨@dhruv,这正是问题所在!我错过了更新房间属性的电话。所以现在当第一个玩家订阅后,我用UpdateRoomProperty更新房间,它工作得非常好。谢谢你的帮助!
public void onJoinRoomDone(RoomEvent eventObj)
    {
        if (Matchmake.searchGame == true)
        {
            if (eventObj.getResult() == WarpResponseResultCode.SUCCESS)
            {
                if (Matchmake.hostingRandomGame == false)
                {
                    Matchmake.UIstate = 7;
                    Matchmake.idRef = eventObj.getData().getId();
                }
                Matchmake.warpClient.SubscribeRoom(Matchmake.idRef);
            }
            else
            {
                Matchmake.warpClient.CreateRoom("CreatedRoom", Matchmake.localUsername, 2, Matchmake.tableProperties);
                Matchmake.UIstate = 8;
            }
        }