草庐IT

ios - 不同版本的回合制 Game Center 游戏看不到彼此的比赛

每次我向测试人员部署新版本时,旧版本的游戏都不再可用。作为测试,我在一台设备上安装了版本63(由agvtool编号),在另一台设备上安装了64。我从64邀请。63什么也没看到(既不是GameCenter邀请,也不是在使用GKTurnBasedMatchmakerViewController时)。所以我安装了64,邀请出现了。我正在使用一个脚本来构建(使用xcodebuild来制作一个存档,然后压缩一个.ipa),尽管每次都是相同的脚本。我还没有看到任何文档提到这一点,这让我担心一旦游戏进入AppStore就无法进行更新。如果两台设备具有相同的构建,则一切正常。(如果我从Xcode构建并

iphone - Real Time Game Center 游戏断开连接(可能是因为网络超时)

所以,我正在编写一个非常简单的实时游戏中心2人游戏;但是,问题是我总是断开连接。游戏的运作方式如下:每个玩家的设备上都有一个文本字段。他们各自在字段中输入文本并按下回车键。当两个人都输入了文本后,游戏就会进行。现在,当用户积极玩游戏(每10秒左右输入一次文本)时,游戏运行良好,用户从未断开连接。但是,当游戏保持不活动状态(用户只是坐着盯着应用屏幕)大约30秒或更长时间时,至少有一名玩家会断开连接。我非常有信心我的互联网是可靠的,而且两台设备似乎都已连接到互联网(通过wifi)。我知道这是一个非常模糊的问题,我只是想知道是否有人对上面粗体的症状有任何想法。编辑:下面是我如何初始化匹配请求

ios - 使用 GameKit 将 UISlider 的移动值从一个设备发送到另一个设备

我正在寻找使用蓝牙将UISlider的移动值从一台设备发送到另一台设备的示例代码。我能够将文本和图像从一台设备发送到另一台设备。但现在,我想发送slider值。如果我移动slider而不是相同的位置也会在另一个设备中移动.. 最佳答案 你需要有一个方法将slider的值转换为NSNumber或NSString,然后以相同的方式发送它。所以你会:[slideraddTarget:selfaction:@selector(sliderMoved:)forControlEvents:UIControlEventValueChanged];

ios - 如何在 iOS 6.1 上正确设置 GKSession(蓝牙)

我在让GKSession工作时遇到问题。下面是我在按下特定按钮时执行的代码。GKSession*session;if(connectButtonHasBeenPressed==false){NSLog(@"connectToBluetoothDevicehasbeencalled");connectButtonHasBeenPressed=true;GKSession*session=[[GKSessionalloc]initWithSessionID:@"Unicorn"displayName:nilsessionMode:GKSessionModePeer];[sessionset

ios - 为什么我不能使用 OCMock stub 这个 GKTurnBasedParticipant 方法?

这是一个OCUnit测试,它简单地stub了GKTurnBasedParticipant的方法playerID:#import#import"OnlineMatchTest.h"#import"OCMock.h"@implementationOnlineMatchTest-(void)setUp{GKTurnBasedParticipant*participant=[OCMockObjectmockForClass:[GKTurnBasedParticipantclass]];[[[(id)participantstub]andReturn:@"123"]playerID];}-(vo

ios - iPhone SDK : GameKit and large files + connection lost

一段时间以来我一直在玩GameKit,但现在我面临着非常严重的困难。我要通过蓝牙发送更大的文件-1-2MB。我已经准备好了一个数据包(每个大约8kB)。我的应用按照以下方案中的描述工作:iPhone-sendingheader:filedividedinto25partsiPod-receivedheader:OKIgotitwaitingfor25partsiPhone-sendingpart#1iPod-receivedpart#1sendnextiPhone-sendingpart#2iPod-receivedpart#2sendnext...iPhone-sendingpart

cocoa-touch - 如果按下主页按钮则结束匹配

如果按下设备上的主屏幕按钮,我将如何结束比赛/断开对方玩家的连接和/或删除比赛制作者标准界面(GameKit)?我在屏幕上还有一个“主菜单”按钮,如果按下该按钮,我想结束比赛/断开对方玩家的连接。我正在使用GameKit查找和开始比赛。我是多人游戏的新手,所以非常感谢您的帮助。-(void)match:(GKMatch*)matchplayer:(NSString*)playerIDdidChangeState:(GKPlayerConnectionState)state{switch(state){caseGKPlayerStateConnected:[delegateonPlaye

ios - 使用 GKSession 进行点对点时如何获得精确的时钟同步?

我制作了一个简单的游戏,它使用GameKit中的GKSession连接到其他点。设置起来很容易,但我发现了一些问题:延迟变化很大。有时消息会立即到达其他设备。有时,向其他对等方发送数据的延迟>1秒。数据只是一个包含10个字符的字符串。我的游戏依赖于精确的时钟同步。游戏会播放音乐,但在所有连接的设备上不同时开始播放时听起来很奇怪。我在文档中找不到任何关于如何同步计时的内容。问题在于启动游戏的“主”码头立即开始播放音乐,然后所有其他码头稍后收到消息并因此延迟后开始播放。然后我尝试在向所有码头发送开始消息后延迟播放游戏音乐,但有时延迟或高或低,我无法获得可靠的同步。是否有开源框架使点对点和时

iphone - Game Center API + 应用内购买 API = 一个应用有两个不同的用户帐户?

如果我有一个支持GameCenter的应用程序,并且我想提供成就以完成作为应用程序内购买出售的拼图包,我该如何同步为应用内购买付费的iTunes帐户使用正在购买的GameCenter用户帐户?据我了解,它们是在两个不同位置访问的两个独立用户帐户(GameCenter帐户在GameCenter应用程序中访问,iTunes帐户在“设置”应用程序中访问)。如何避免这种情况发生...GameCenterPlayer1登录,运行我的应用程序并购买拼图包GameCenterPlayer1注销,GameCenterPlayer2登录,运行我的应用并玩完Player1购买的拼图包,Player2获得成

ios - 为什么在使用 GKMatchSendDataReliable 时会丢失数据包?

我有一个多人iOS游戏,我正在使用GKMatchSendDataReliable发送数据。但是,偶尔会丢失数据包。我已经检查了发送端,但没有收到错误。我只是没有在接收时收到它。它是间歇性的,我在接收方法的开头有NSLogs,所以我总是知道什么时候收到消息。GKMatchSendDataReliable是否100%可靠?必须设置我自己的可靠数据发送例程似乎是一种浪费。这似乎只有在一台设备连接到Verizon的LTE网络时才会发生。我还没有尝试过任何其他蜂窝网络。仅使用Wi-Fi时,不一定是相同的wi-fi,它工作正常。 最佳答案 这也