问题标签 [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.
ios - iPhone SDK:GameKit 和大文件 + 连接丢失
一段时间以来,我一直在玩 GameKit,但现在我面临着非常严重的困难。
我将通过蓝牙发送更大的文件 - 1-2MB。我已经准备了一个数据包(每个大约 8kB)。
我的应用程序按照以下方案所述工作:
我使用以下方式发送文件部分和消息(发送确认):
并接收数据:
我想知道您如何处理蓝牙传输过程中可能出现的一些问题。浏览文档 GKSessionDelegate 不会给我任何数据是否已交付的信息。
在 90% 的情况下,传输工作正常,但有时它会突然停止并且在没有重新连接/重新启动应用程序的情况下无法继续。
如果我在 1 秒内没有得到响应,我试图发明一个简单的解决方案来再次设置数据:
如果发件人收到文件部分成功交付的确认,则 timeOutTimer 无效。但事实上,当我实施这个解决方案时,还有更多的问题。
设备在桌子上彼此相邻。
您如何处理设备之间“未交付”数据的问题?它只是一个工具,但在开发游戏时它怎么会让人讨厌呢?
顺便说一句,发送简短的聊天消息从来没有引起任何问题,我正在使用相同的方法。
事实上,连接很少丢失,只是数据喜欢在空中丢失。我已经在划分各个部分,所以数据的大小约为 8kb,这使得图像的传输真的很慢。
iphone - 第一代 iPhone 和 iPod Touch 上的 GameKit 和 GKPeerPicker
这是我当前的多人游戏设置:
提供连接提示并警告用户多人游戏将无法在第一代 iPhone 或 ipod Touch 上运行的视图。有一个“连接”按钮可以推动游戏视图并启动 GKPeerPicker。
不幸的是,我没有第一代 iPhone 或 iPod Touch 来测试如果他们按下连接按钮会发生什么。视图将被推送,但我不知道当 PeerPicker 尝试显示时会发生什么。
所以问题:
有没有办法告诉用户是否无法使用 GameKit,以便我可以禁用“连接”按钮?
如果他们确实按下了连接按钮并且 GameKit 不可用,会发生什么?
iphone - 使用 GameKit 的同步问题
我正在尝试制作一个简单的两人蛇游戏,它使用 gameKit 来回发送运动信息。我在服务器发送命令开始游戏的情况下开始游戏。游戏开始后,每隔 0.5 秒就会触发一个计时器来移动蛇。无论我做什么,我最终都会让两部 iPhone 上的计时器在不同的时间触发。有没有人对在设备之间同步信息的可靠方法有任何建议或建议?
在此先感谢您的帮助!
bluetooth - IPhone 3.0 Gamekit 服务器可以支持多少客户端
iPhone SDK 3.0 中的 GameKit 使用服务器-客户端模型在两部 iPhone 之间创建点对点蓝牙连接。在蓝牙规范中,一个服务器最多可以连接 7 个客户端。但在 GameKit 文档中,没有关于这个问题的文字。这是否意味着一个 GameKit 服务器可以连接超过 7 个客户端?如果是,这是否意味着某些客户端处于睡眠模式?
谢谢!
iphone - GameKit wifi 连接?
我已经读到,从 iPhone OS 3.1 开始,GameKit 支持 wifi 连接。但是文档指出:
“如果您的应用程序将点选择器配置为允许 Internet 连接,则您的应用程序还必须关闭点选择器并提供自己的界面来配置 Internet 连接。”
这还站得住吗?如果是这样,我如何建立 GK 可以使用的 wifi Bonjour 会话?(我只对使用本地网络感兴趣。)
iphone - 为什么 Gamekit 是这样设计的?即使在客户端模式下,也会收到所有通知
我们没有使用 GKPeerPicker 控件。我们正在实现自定义 UI。我们已经用不同的语言/平台完成了一些传统的客户端-服务器应用程序。
在 Gamekit 中,我有一个处于服务器模式,其余的处于客户端模式。我没有使用对等模式。然而,当某个新客户端连接时,所有已连接的客户端都会被隐式通知任何客户端的连接和断开连接。此外,当我使用“sendToAll”从客户端发送数据时,它会到达连接到服务器的所有客户端。
我的意思是现在我必须明确维护服务器 peerid 和其余的 peerid。虽然它是编程中的一项小任务,但我只是对它的设计感到好奇。在传统的客户端服务器套接字编程中,您没有这一切。例如场景,当 2 个客户端想要捕获一个槽时,服务器处理第一个请求,填充槽并拒绝第二个请求。
由于这种设计,我看不到太多优势。请指出我的错误,让我知道为什么要这样设计。
iphone - iPhone SDK 的哪一部分处理蓝牙?
我希望能够从 iPhone 向带有蓝牙的 Mac 发送数据?这可能吗?我认为 GameKit 允许您连接两部 iPhone,但我看不到任何有关连接计算机的信息。
iphone - 原则上,Android 设备是否可以通过蓝牙/GameKit 与 iPhone 交互?
(我对纯理论不感兴趣,但作为一种实用的近期或中期可能性,比如在 12-24 个月内。)
作为一个熟悉(但不专注于)两个主要智能手机平台的开发人员,我是否应该期待一个 Android 库的出现,它可以将自己欺骗到 iPhone 应用程序的基于 GameKit 的网络上。平台之间的蓝牙接口可能会为开发有用的应用程序创造机会,这似乎是合理的,就像调制解调器通过梅特卡夫定律使 PC/Mac 平台受益一样。
我正在寻找两个答案之一:
这显然不太可能(例如因为加密)?如果是这样,原因是什么?原则上是否可行,但需要多年的逆向工程(如 SMB/CIFS/Samba)?或者它是一个不费吹灰之力的,只是时间问题?请提供证据支持你的理由。
除了 GameKit 之外,还有其他方法可以直接进行点对点网络吗?例如,使用蓝牙或 ad-hoc WiFi 的手动网络?将 Android 设备欺骗到现有的 iPhone 应用程序中会很好,但我的主要问题是,这些设备是否可以相互通信!
iphone - GameKit:在没有 GKPeerPickerController 的情况下使用 GKSession 时的连接类型是什么
我正在BlueTooth
为. 出于连接目的,我正在使用. 但是由于一些特殊要求的应用程序我不能使用默认的. 所以我改为创建一个和组合来检测对等点。找到对方后,就可以聊天了。Wifi
iPhone
GameKit
GKPeerPickerController
GKSession
GKSessionDelegate
现在我已经在三个mac-minis
使用上测试了聊天功能simulator
,一个模拟器和一个iPod
,一个iPhone
和一个Simulator
。我可以在上述所有场景中聊天。但是有些如何iPhone
和iPod
不会检测到对方。
我也很好奇所有这些设备之间发生的连接类型。因为理论上GameKit
支持两者,BlueTooth
和WiFi
。现在的问题是,让我们在和GKPeerPickerController
之间进行具体选择(不幸的是,任何地方都没有记录 的实现。)这很好,但是当一个人实现他或她自己的和Combo 时,自定义场景呢?当使用唯一可用的方法创建对象时:BlueTooth
WiFi
WiFi
GKSession
GKSessionDelegate
GKSession
init
这提供的唯一配置选项是sessionMode
,但它只有三个选项
Bluetooth
其中没有一个表示和之间的连接选择WiFi
。
但是我已经禁用bluetooth
了iPod
它并用它测试了它,mac-mini
所以我猜这是使用WiFi
. 同样在日志中,我得到以下行:
和部分让我觉得DNSServiceRegister
沟通udp
已经结束TCP/IP
。
那么这是否意味着当我开始时GKSession
默认GKSessionDelegate
的通信方法是仅 WiFi,或者它是否同时支持WiFi
两者bluetooth
(尽管我从来没有得到任何迹象表明BlueTooth
正在发生连接)。
但GameKit
应该主要是关于BlueTooth
对吧?任何人都可以说明到底发生了什么吗?
您还看到有人实现了 WiFi 接口的任何示例代码 GKPeerPickerController
吗?
解决了:
好的 我自己找到的。GKSession
和GKSessionDelegate
我在问题中提到的自定义实现适用于bluetooth
和WiFi
。实际上iPhone (JailBroked)
我使用的有一些问题,BlueTooth
可能是阻止Gamekit
正常工作,在硬重置手机并关闭Airplane
模式后,bluetooth
关闭几次就可以bluetooth
在手机上工作。WiFi
现在该应用程序在和BlueTooth
模式下都可以正常工作。
iphone - GKPeerPickerController 和 GKSession
我们可以使用 GKSession 和 GKPeerPickerController 仅通过蓝牙连接 iPodtouch 或 iPhone 吗?,或者我们可以连接其他蓝牙设备吗?