我即将开始构建一个使用 Game Center 成就和高分的 iPhone 游戏,但我还想要一个可以在没有 Game Center 的 iPhone 上运行的版本(即 iOS 版本 < 4.1) . 我可以在应用商店中拥有同一个应用的两个版本,一个用于游戏中心,一个用于无游戏中心吗?或者我应该设计应用程序,如果 iPhone 没有 Game Center,它就不会使用它,如果有,它会使用它?
我将继续研究这个,只是想我会发布这个问题并在此期间得到一些反馈。非常感谢!
我即将开始构建一个使用 Game Center 成就和高分的 iPhone 游戏,但我还想要一个可以在没有 Game Center 的 iPhone 上运行的版本(即 iOS 版本 < 4.1) . 我可以在应用商店中拥有同一个应用的两个版本,一个用于游戏中心,一个用于无游戏中心吗?或者我应该设计应用程序,如果 iPhone 没有 Game Center,它就不会使用它,如果有,它会使用它?
我将继续研究这个,只是想我会发布这个问题并在此期间得到一些反馈。非常感谢!
这是我从一位 Apple 工程师那里收到的明确答复……
“我们建议制作一个版本的应用程序,它可以动态检测 Game Center 是否可用,并据此使用(或不使用)。”
也许创建一个没有它的游戏,然后为游戏中心创建功能,但禁用它们,只有在它们有正确的版本时才启用它们。
我也在做同样的事情。如果您有 GameCenter 功能,则可以使用这些功能。如果你不这样做,你就不能。
我不会在没有游戏的情况下编写游戏,然后再添加它。就我而言,我为非 GC 用户禁用了多人游戏。
此外,如果设备具有 GC 功能,您可能希望您的游戏能够运行,但用户当前无法连接到 GC,无论出于何种原因。
您可以使用以下函数来检测设备是否支持 Game Center:
BOOL isGameCenterAvailable()
{
// Check for presence of GKLocalPlayer API.
Class gcClass = (NSClassFromString(@"GKLocalPlayer"));
// The device must be running running iOS 4.1 or later.
NSString *reqSysVer = @"4.1";
NSString *currSysVer = [[UIDevice currentDevice] systemVersion];
BOOL osVersionSupported = ([currSysVer compare:reqSysVer options:NSNumericSearch] != NSOrderedAscending);
return (gcClass && osVersionSupported);
}
However I found that a lot of people have not updated to iOS 4.1 or are naive about Game Center. The number of users in my game is quite small even though there are so many downloads. I was actually considering moving over to Open Feint which is very much easier to implement than Game Kit and also supports older devices.