任何示例项目,显示如何使用gamekit(服务器 - 客户端模型)WITHOUT(!)GKPeerPickerController和超过2个设备?

时间:2011-05-07 18:56:03

标签: cocos2d-iphone bluetooth gamekit bonjour sample

是否有任何示例项目显示如何在没有gkpeerpicker的情况下使用gamekit? 是否有任何使用bonjour的样本(但没有任何互联网连接,也没有无线路由器)? 一些信息(两个项目):

  • 只有蓝牙(另一个项目的bonjour)
  • 超过2台设备(如果可能)
  • 服务器客户端模型(如何使其工作)
  • 发送/接收数据
  • 服务器可以决定其他“潜在”客户是否“可见”
  • 在tableview中显示“已发现”设备 - >如果用户点击一个tableview单元格(设备名称,例如“Tom's iPod Touch”),它将配对,但另一个用户必须接受连接(UIAlertView),如果他接受,他们将配对
  • 以uitableview显示所有连接的对等体(连接到服务器)
  • 踢出一些同行(只有服务器可以踢其他)(这应该很容易实现。只需向客户端发送一个特殊的数据包,其中包含一个字符串,表示“KICK YOURSELF”而不是自己踢它)
  • 邀请其他客户(搜索中) (真的不需要这个,但会很棒):
  • 让客户/服务器移动对象(box2d(cocos2d)中的物理对象),并且每个客户端都应该在屏幕上显示完全相同的模拟。

使用谷歌几个小时后,我认为没有示例上面显示这些“功能”的项目。 Mayby有人可以制作一个吗?请不要说我一些理论。我阅读了这么多,但一个示例项目(或更多和另一个bonjour版本)与代码评论将是伟大的!

编辑:我可能会在此添加一些赏金;)。目前我不能;)

非常感谢您阅读:)

cocos2dbeginner

3 个答案:

答案 0 :(得分:2)

我不打算为你写这个,但我可以提供一些信息来帮助你入门。有许多示例显示了您的一些功能,尤其是Apple的witap example

有一点需要注意,你不能从蓝牙转到bonjour。蓝牙是沟通的方法,bonjour是你如何沟通的方式。因此,您必须在一侧进行bonjour广播并在另一侧进行连接。蓝牙上的Bonjour在Apple的API中得到了解决,它应该“正常工作”。有关详情,请参阅this

来自苹果的

This page不仅具有您正在寻找的游戏包概念,而且还会告诉您将用于完成任务的方法名称,即使您不想通过提供的苹果与GameKit的UI。

Herehereherehere是更多bonjour网络示例的链接。只要你没有使用套接字执行复杂的任务,我个人喜欢this,这会使事情变得非常简单。

希望有所帮助。

答案 1 :(得分:1)

我强烈推荐Ray Wenderlichs页面。 有一个Gamecenter网络教程可以满足您的一些要求。 http://www.raywenderlich.com/3276/how-to-make-a-simple-multiplayer-game-with-game-center-tutorial-part-12

根据你的别名:还有更多有用的高质量教程。转到http://www.raywenderlich.com/tutorials获取列表。

答案 2 :(得分:0)

Apple自己有演示项目,使用GKSession和蓝牙使用GKPeerPickerController显示wifi连接。如果你想要一个peerPicker和两个选项我认为你需要使用peerpicker控制器给用户一个选择。在实例化选择器之后,在您希望选择器出现的位置使用此代码。

picker.connectionTypesMask = GKPeerPickerConnectionTypeOnline | GKPeerPickerConnectionTypeNearby;

然后,如果他们选择wifi,则使用iOS示例代码库中GKRocket项目的代码。如果他们选择蓝牙,那么使用GKTank。

GKRocket代码(使用GKSession和表格)更难以遵循,但如果没有wifi覆盖,GKSession会自动使用蓝牙。鉴于您需要在项目中使用GKSession的大部分代码来处理wifi,我认为除非您只想要蓝牙,否则更容易忘记peerPickerController。

最终,Apple肯定会向peerPickerController添加必要的方法和属性来处理wifi,但目前你需要的是GKSession。

希望它有所帮助。