问题标签 [gamekit]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2363 浏览

ios - iPhone SDK:GameKit 和大文件 + 连接丢失

一段时间以来,我一直在玩 GameKit,但现在我面临着非常严重的困难。

我将通过蓝牙发送更大的文件 - 1-2MB。我已经准备了一个数据包(每个大约 8kB)。

我的应用程序按照以下方案所述工作:

我使用以下方式发送文件部分和消息(发送确认):

并接收数据:

我想知道您如何处理蓝牙传输过程中可能出现的一些问题。浏览文档 GKSessionDelegate 不会给我任何数据是否已交付的信息。

在 90% 的情况下,传输工作正常,但有时它会突然停止并且在没有重新连接/重新启动应用程序的情况下无法继续。

如果我在 1 秒内没有得到响应,我试图发明一个简单的解决方案来再次设置数据:

如果发件人收到文件部分成功交付的确认,则 timeOutTimer 无效。但事实上,当我实施这个解决方案时,还有更多的问题。

设备在桌子上彼此相邻。

您如何处理设备之间“未交付”数据的问题?它只是一个工具,但在开发游戏时它怎么会让人讨厌呢?

顺便说一句,发送简短的聊天消息从来没有引起任何问题,我正在使用相同的方法。

事实上,连接很少丢失,只是数据喜欢在空中丢失。我已经在划分各个部分,所以数据的大小约为 8kb,这使得图像的传输真的很慢。

0 投票
2 回答
1031 浏览

iphone - 第一代 iPhone 和 iPod Touch 上的 GameKit 和 GKPeerPicker

这是我当前的多人游戏设置:

提供连接提示并警告用户多人游戏将无法在第一代 iPhone 或 ipod Touch 上运行的视图。有一个“连接”按钮可以推动游戏视图并启动 GKPeerPicker。

不幸的是,我没有第一代 iPhone 或 iPod Touch 来测试如果他们按下连接按钮会发生什么。视图将被推送,但我不知道当 PeerPicker 尝试显示时会发生什么。

所以问题:

有没有办法告诉用户是否无法使用 GameKit,以便我可以禁用“连接”按钮?

如果他们确实按下了连接按钮并且 GameKit 不可用,会发生什么?

0 投票
2 回答
611 浏览

iphone - 使用 GameKit 的同步问题

我正在尝试制作一个简单的两人蛇游戏,它使用 gameKit 来回发送运动信息。我在服务器发送命令开始游戏的情况下开始游戏。游戏开始后,每隔 0.5 秒就会触发一个计时器来移动蛇。无论我做什么,我最终都会让两部 iPhone 上的计时器在不同的时间触发。有没有人对在设备之间同步信息的可靠方法有任何建议或建议?

在此先感谢您的帮助!

0 投票
2 回答
2032 浏览

bluetooth - IPhone 3.0 Gamekit 服务器可以支持多少客户端

iPhone SDK 3.0 中的 GameKit 使用服务器-客户端模型在两部 iPhone 之间创建点对点蓝牙连接。在蓝牙规范中,一个服务器最多可以连接 7 个客户端。但在 GameKit 文档中,没有关于这个问题的文字。这是否意味着一个 GameKit 服务器可以连接超过 7 个客户端?如果是,这是否意味着某些客户端处于睡眠模式?

谢谢!

0 投票
2 回答
5292 浏览

iphone - GameKit wifi 连接?

我已经读到,从 iPhone OS 3.1 开始,GameKit 支持 wifi 连接。但是文档指出:

“如果您的应用程序将点选择器配置为允许 Internet 连接,则您的应用程序还必须关闭点选择器并提供自己的界面来配置 Internet 连接。”

这还站得住吗?如果是这样,我如何建立 GK 可以使用的 wifi Bonjour 会话?(我只对使用本地网络感兴趣。)

0 投票
1 回答
560 浏览

iphone - 为什么 Gamekit 是这样设计的?即使在客户端模式下,也会收到所有通知

我们没有使用 GKPeerPicker 控件。我们正在实现自定义 UI。我们已经用不同的语言/平台完成了一些传统的客户端-服务器应用程序。

在 Gamekit 中,我有一个处于服务器模式,其余的处于客户端模式。我没有使用对等模式。然而,当某个新客户端连接时,所有已连接的客户端都会被隐式通知任何客户端的连接和断开连接。此外,当我使用“sendToAll”从客户端发送数据时,它会到达连接到服务器的所有客户端。

我的意思是现在我必须明确维护服务器 peerid 和其余的 peerid。虽然它是编程中的一项小任务,但我只是对它的设计感到好奇。在传统的客户端服务器套接字编程中,您没有这一切。例如场景,当 2 个客户端想要捕获一个槽时,服务器处理第一个请求,填充槽并拒绝第二个请求。

由于这种设计,我看不到太多优势。请指出我的错误,让我知道为什么要这样设计。

0 投票
1 回答
693 浏览

iphone - iPhone SDK 的哪一部分处理蓝牙?

我希望能够从 iPhone 向带有蓝牙的 Mac 发送数据?这可能吗?我认为 GameKit 允许您连接两部 iPhone,但我看不到任何有关连接计算机的信息。

0 投票
7 回答
9332 浏览

iphone - 原则上,Android 设备是否可以通过蓝牙/GameKit 与 iPhone 交互?

(我对纯理论不感兴趣,但作为一种实用的近期或中期可能性,比如在 12-24 个月内。)

作为一个熟悉(但不专注于)两个主要智能手机平台的开发人员,我是否应该期待一个 Android 库的出现,它可以将自己欺骗到 iPhone 应用程序的基于 GameKit 的网络上。平台之间的蓝牙接口可能会为开发有用的应用程序创造机会,这似乎是合理的,就像调制解调器通过梅特卡夫定律使 PC/Mac 平台受益一样。

我正在寻找两个答案之一:

  1. 这显然不太可能(例如因为加密)?如果是这样,原因是什么?原则上是否可行,但需要多年的逆向工程(如 SMB/CIFS/Samba)?或者它是一个不费吹灰之力的,只是时间问题?请提供证据支持你的理由。

  2. 除了 GameKit 之外,还有其他方法可以直接进行点对点网络吗?例如,使用蓝牙或 ad-hoc WiFi 的手动网络?将 Android 设备欺骗到现有的 iPhone 应用程序中会很好,但我的主要问题是,这些设备是否可以相互通信!

0 投票
1 回答
2650 浏览

iphone - GameKit:在没有 GKPeerPickerController 的情况下使用 GKSession 时的连接类型是什么

我正在BlueTooth为. 出于连接目的,我正在使用. 但是由于一些特殊要求的应用程序我不能使用默认的. 所以我改为创建一个和组合来检测对等点。找到对方后,就可以聊天了。WifiiPhoneGameKitGKPeerPickerControllerGKSessionGKSessionDelegate

现在我已经在三个mac-minis使用上测试了聊天功能simulator,一个模拟器和一个iPod,一个iPhone和一个Simulator。我可以在上述所有场景中聊天。但是有些如何iPhoneiPod不会检测到对方。

我也很好奇所有这些设备之间发生的连接类型。因为理论上GameKit支持两者,BlueToothWiFi。现在的问题是,让我们在和GKPeerPickerController之间进行具体选择(不幸的是,任何地方都没有记录 的实现。)这很好,但是当一个人实现他或她自己的和Combo 时,自定义场景呢?当使用唯一可用的方法创建对象时:BlueToothWiFiWiFiGKSessionGKSessionDelegateGKSessioninit

这提供的唯一配置选项是sessionMode,但它只有三个选项

Bluetooth其中没有一个表示和之间的连接选择WiFi

但是我已经禁用bluetoothiPod它并用它测试了它,mac-mini所以我猜这是使用WiFi. 同样在日志中,我得到以下行:

和部分让我觉得DNSServiceRegister沟通udp已经结束TCP/IP

那么这是否意味着当我开始时GKSession默认GKSessionDelegate的通信方法是仅 WiFi,或者它是否同时支持WiFi两者bluetooth(尽管我从来没有得到任何迹象表明BlueTooth正在发生连接)。

GameKit应该主要是关于BlueTooth对吧?任何人都可以说明到底发生了什么吗?

您还看到有人实现了 WiFi 接口的任何示例代码 GKPeerPickerController吗?


解决了:

好的 我自己找到的。GKSessionGKSessionDelegate我在问题中提到的自定义实现适用于bluetoothWiFi。实际上iPhone (JailBroked)我使用的有一些问题,BlueTooth可能是阻止Gamekit正常工作,在硬重置手机并关闭Airplane模式后,bluetooth关闭几次就可以bluetooth在手机上工作。WiFi现在该应用程序在和BlueTooth模式下都可以正常工作。

0 投票
2 回答
1432 浏览

iphone - GKPeerPickerController 和 GKSession

我们可以使用 GKSession 和 GKPeerPickerController 仅通过蓝牙连接 iPodtouch 或 iPhone 吗?,或者我们可以连接其他蓝牙设备吗?