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

Aar*_*ker 21 objective-c ios apple-tv multipeer-connectivity tvos

在Apple TV宣布期间,Crossy Road的开发人员使用iPhone作为Apple电视游戏的第二控制器:

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

我的第一个想法是使用Multipeer Connectivity Framework实现这一点.但是,它不支持tvOS.有没有一种很好的方法可以在没有Multipeer Connectivity的情况下将iPhone连接到Apple TV?

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

viv*_*nha 10

你可以试试我的图书馆.我为我的应用程序构建这个也许对你有用.

https://github.com/vivianaranha/TvOS_Remote

Apple TV Project(接收器)

步骤1:创建TvOS项目并从RemoteReceiver导入文件

libRemoteReceiver.a

RemoteReceiver.h

步骤2:在ViewController.m文件中导入RemoteReceiver.h文件

#import "RemoteReceiver.h"
Run Code Online (Sandbox Code Playgroud)

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

@interface ViewController () <RemoteReceiverDelegate>
@property (nonatomic, strong) RemoteReceiver *remoteReceiver;
@end
Run Code Online (Sandbox Code Playgroud)

第4步:在viewDidLoad内部为remoteReceiver分配和设置委托

self.remoteReceiver = [[RemoteReceiver alloc] init];
self.remoteReceiver.delegate = self;
Run Code Online (Sandbox Code Playgroud)

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

-(void) didReceiveMessage:(NSDictionary *)userInfo{
    NSLog(@"%@",userInfo);
}
Run Code Online (Sandbox Code Playgroud)

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

步骤1:创建iOS项目并从RemoteSender导入文件

libRemoteSender.a

RemoteSender.h

第2步:在ViewController中导入RemoteSender类

#import "RemoteSender.h"
Run Code Online (Sandbox Code Playgroud)

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

@interface ViewController ()
@property(nonatomic, strong) RemoteSender *remoteSender;
@end
Run Code Online (Sandbox Code Playgroud)

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

self.remoteSender = [[RemoteSender alloc] init];
Run Code Online (Sandbox Code Playgroud)

第5步:实现手势和方法(检查下面的按钮代码)

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


Rob*_*uss 7

我开发了一个框架,支持创建基于软件的控制器,并通过MFi配置文件引导输入,允许您拥有一个处理软件和硬件控制器的单一代码库.许多其他功能:

https://github.com/robreuss/VirtualGameController

NSNetservice用于连接,支持所有Apple平台(iOS,OS X,watchOS和tvOS).

所有功能:

  • Apple的GameController框架(GCController)的Mimics API
  • 软件控制器中的设备运动支持
  • 定制控制器元素
  • 自定义元素映射
  • 基于WiFi,具有蓝牙备用功能
  • 控制器转发
  • 适用于Apple TV Simulator
  • Apple TV上无限数量的硬件控制器(使用控制器转发)
  • 能够增强廉价的滑动/形状配合控制器,包括运动,扩展轮廓元素和自定义元素
  • iCade控制器支持(通过MFi配置文件映射,因此它们显示为MFi硬件)
  • 易于在软件控制器上实现3D触摸
  • 利用软件控制器(包括Apple TV)利用屏幕和蓝牙键盘
  • 支持快照(与Apple的快照格式兼容)
  • 斯威夫特2.1
  • 基于框架


liv*_*ech 0

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

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