2009-02-12 66 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支持類似的功能。