使用iPhone作为游戏控制器在tvOS应用程序?

在苹果电视宣布的过程中,Crossy Road的开发者展示了使用iPhone作为苹果电视游戏的第二个控制器:

http://www.macrumors.com/2015/09/09/cooperative-play-for-crossy-road/

我的第一个想法是使用Multipeer连接框架来实现这一点。 但是,它不支持tvOS。 有没有一个很好的方法来连接iPhone的苹果电视没有Multipeer连接?

更新:我不能使用GameKit,因为GKPeerPickerController已经从tvOS上的GameKit中删除。

你可以试试我的图书馆。 我build立这个为我的应用程序也许对你有帮助。

https://github.com/vivianaranha/TvOS_Remote

苹果电视项目(接收器)

第1步:创build一个TvOS项目并从RemoteReceiver导入文件

libRemoteReceiver.a

RemoteReceiver.h

第2步:在您的ViewController.m文件中导入RemoteReceiver.h文件

#import "RemoteReceiver.h" 

第3步:在ViewController.m文件中添加下面的代码

 @interface ViewController () <RemoteReceiverDelegate> @property (nonatomic, strong) RemoteReceiver *remoteReceiver; @end 

第4步:在viewDidLoad alloc里面设置remoteReceiver的委托

 self.remoteReceiver = [[RemoteReceiver alloc] init]; self.remoteReceiver.delegate = self; 

步骤5:为从iOS远程应用发送的消息实现以下委托方法

 -(void) didReceiveMessage:(NSDictionary *)userInfo{ NSLog(@"%@",userInfo); } 

iOS项目(发件人/远程控制)

第1步:创build一个iOS项目并从RemoteSender导入文件

libRemoteSender.a

RemoteSender.h

第2步:在您的ViewController中导入RemoteSender类

 #import "RemoteSender.h" 

步骤3:使用以下代码更新ViewController.m

 @interface ViewController () @property(nonatomic, strong) RemoteSender *remoteSender; @end 

步骤4:分配并初始化remoteSender对象

 self.remoteSender = [[RemoteSender alloc] init]; 

第5步:实施手势和方法(请查看下面的button代码)

 - (IBAction)sendSomeInformation:(id)sender { NSDictionary *theDictionaryToSendToTV = @{@"name": @"John Smith",@"age": @"35", @"address":@"123 Main St"}; [self.remoteSender sendInfo:theDictionaryToSendToTV]; } 

我开发了一个框架,支持创build基于软件的控制器,并通过MFiconfiguration文件指导input,使您可以拥有一个处理软件和硬件控制器的代码库。 许多其他function,以及:

https://github.com/robreuss/VirtualGameController

NSNetservice用于连接,并支持所有苹果平台(iOS,OS X,watchOS和tvOS)。

所有function:

  • 模仿苹果的GameController框架API(GCController)
  • 软件控制器中的设备运动支持
  • 自定义控制器元素
  • 自定义元素映射
  • 基于WiFi,蓝牙备用
  • 控制器转发
  • 适用于Apple TV模拟器
  • Apple TV上无限数量的硬件控制器(使用控制器转发)
  • 能够利用运动,扩展轮廓元素和自定义元素来增强便宜的滑动/形状拟合控制器
  • iCade控制器支持(通过MFiconfiguration文件进行映射,使其显示为MFi硬件)
  • 在软件控制器上易于实现的3D触摸
  • 利用屏幕和蓝牙键盘使用软件控制器(包括Apple TV)
  • 支持快照(兼容苹果的快照格式)
  • Swift 2.1
  • 基于框架

看起来像CFNetwork在TvOS上可用。 试试这个问题来寻求使用CFNetwork帮助。

编辑:也看看CoreBluetooth 。 我正在处理同一个问题 – 我想为我的TvOS应用程序提供一个伴侣iPhone应用程序。

那么,我不确定它是否是一个“好方法”,但是GKMatchRequestGKMatchmaker在那里,所以也许这就是他们正在使用的。

https://developer.apple.com/library/prerelease/tvos/documentation/GameKit/Reference/GKMatchRequest_Ref/