2009-02-12 70 views
3

你们会如何去创造iPhone游戏的在线游戏功能?显然,人们可以频繁地轮询服务器,但是鉴于设备的功能,这是否真实?假设你每隔一两秒轮询一次服务器并检索100个字节的数据......当游戏玩法持续下去时,是否有可能在后台检索数据,还是会被服务器轮询阻止?iPhone游戏的在线玩法?

由于提前, BCH

回答

1

你可以做asynchromous请求。但是你在这里问一个非常非常难的问题。只是想确保你知道这一点。

+0

是的,我意识到这是一个困难的问题,但我想StackOverflow是去那个地方。我比任何东西都更关心可行性,不一定要查找源代码。 – user21293 2009-02-12 06:37:51

5

您需要制作一个多线程应用程序。然后你可以有一个后台线程轮询服务器(或更好的,在它上面发出异步请求)

看看NSOperation和NSOperationQueue类,你会让每个后台任务由一个NSOperation类的实例来表示。这个类负责启动操作,确保它们按照适当的顺序运行,并考虑你设置的任何优先级。

使用NSOperation最常用的方法是编写自定义子类并覆盖方法main。当NSOperationQueue调度它运行时,主要方法被调用来执行操作。

如果你不想要over子类的头,看看NSInvocationOperation类。这是NSOperation的一个具体子类,它使得将操作附加到现有方法变得容易。 NSInvocationOperation对象可以添加到一个NSOperationQueue(就像NSOperations一样),这样你就可以获得多线程而不必继承子类。

1

看一下WiTap示例(在xcode中对witap进行全文搜索)。它使用NSStreams获取异步行为,而不必诉诸管理自己的线程或轮询。

0

使用OpenFeint的。它可以让你轻松地开发在全球互联网基于非实时转多人游戏..

我不知道,如果现在的GameCenter支持类似的功能。