使用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应用程序。
那么,我不确定它是否是一个“好方法”,但是GKMatchRequest
和GKMatchmaker
在那里,所以也许这就是他们正在使用的。