问题
你建立了工程,并且想要开始在应用程序中结合游戏中心API。
解决方案
添加游戏工具包框架到应用程序。
讨论
为了使用游戏中心的能力,你必须链接游戏工具包框架,步骤如下(假设你已经创建了一个Xcode工程):
1. 在Xcode中点击工程(该工程应当拥有一个青色的图标)。看到工程设置后,点击必须链接到游戏工具包框架的目标。
2. 在屏幕上方,选择“Build Phases”,然后展开“Link Binary With Libraries”框,如图1-6所示。
图 1-6 iOS应用程序的“Build Phases”
3. 点击“+”按钮,从列表中选择“GameKit.framework”,然后点击“Add”按钮,如图1-7所示。
图 1-7 添加游戏工具包框架到iOS目标
现在,游戏工具包就加到工程了。你必须决定是否确实需要使用游戏工具包。版本4.1之前的iOS不支持游戏中心(虽然iOS4.0演示了游戏中心),因此你必须决定游戏中心是必须的还是可选的。
如果你的应用程序离开游戏中戏就无法工作,那么你必须遵循下面的这些步骤,在 Info.plist文件中明确指定。
1. 找到Info.plist文件,右键。
2. 在弹出菜单中选择“Open As”→“Source Code”。
3. 增加一个叫做UIRequiredDeviceCapabilities的键值,后跟一个array,并包含字符串值gamekit,如下所示:
<key>UIRequiredDeviceCapabilities</key>
<array>
<string>gamekit</string>
</array>
如果你的应用程序用到了游戏中心,但游戏中心不是主要的部分,则可以有选择性地加载游戏中心。这么做的步骤如下:
1. 获取当前的iOS版本。如果它大于4.1,则你可以确信50%,游戏中心有效。
2. 确定游戏工具包框架中的某个类(如GKLocalPlayer)是否在主机设备中有效。一个正值结果表示主机设备支持游戏中心,而这覆盖了另外的50%。
组合这两个方法,你可以100%确定给定的设备中游戏中心是否有效。下面是实例代码:
- (BOOL) gameCenterSupported{
NSUInteger availabilityPercentage = 0;
if (NSStringFromClass([GKLocalPlayer class]) != nil){
availabilityPercentage += 50;
}
NSString *systemVersionAsString =
[[UIDevice currentDevice] systemVersion];
NSNumber *systemVersion = [NSNumber numberWithDouble:
[systemVersionAsString doubleValue]];
NSNumber *minimumSystemVersion = [NSNumber numberWithDouble:4.1];
if ([minimumSystemVersion compare:systemVersion] != NSOrderedDescending){
availabilityPercentage += 50;
}
if ((NSUInteger)availabilityPercentage == 100){
NSLog(@"Game Center is supported.");
return YES;
} else {
NSLog(@"Game Center is not supported");
return NO;
}
}
确保你已经导入了游戏工具包的主要头文件:
#import <GameKit/GameKit.h>
该代码比较当前系统版本和最小需求版本,确保当前版本更高或相同(升序)。举例来说,4.1(最小需求)后跟4.2(当前版本),是升序,因此我们可以断定,是支持游戏中心的。相应地,4.1(最小需求)后跟4.0(当前版本),是降序,表示当前机器上缺乏对游戏中心的支持。
现在已经知道主机设备是否支持游戏中心,我们可以继续下一步操作。