Использовать iPhone в качестве игрового контроллера в приложении tvOS?

Во время анонса Apple TV разработчики Crossy Road продемонстрировали использование iPhone в качестве второго контроллера для телевизионной игры Apple:

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

Моей первой мыслью было реализовать это с помощью Multipeer Connectivity Framework. Тем не менее, он не поддерживается в tvOS. Есть ли хороший способ подключить iPhone к Apple TV без возможности подключения Multipeer?

Обновление: не похоже, что я могу использовать GameKit, потому что GKPeerPickerController был удален из GameKit на tvOS.

4 ответа

Вы можете попробовать мою библиотеку. Я построил это для своих приложений, может быть, полезно и для вас.

https://github.com/vivianaranha/TvOS_Remote

Apple TV Project (Приемник)

Шаг 1. Создайте проект 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 Project (Отправитель / Удаленное управление)

Шаг 1. Создайте проект iOS и импортируйте файлы из RemoteSender

libRemoteSender.a

RemoteSender.h

Шаг 2. Импортируйте класс RemoteSender в свой ViewController

#import "RemoteSender.h"

Шаг 3: Обновите ViewController.m с помощью следующего кода

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

Шаг 4. Выделите и инициализируйте объект remoteSender.

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

Шаг 5: Реализуйте жесты и методы (проверьте только код кнопки)

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

Я разработал платформу, которая поддерживает создание программных контроллеров и направляет ввод через профиль MFi, позволяя вам иметь единую кодовую базу, которая обрабатывает как программные, так и аппаратные контроллеры. Многие другие функции:

https://github.com/robreuss/VirtualGameController

NSNetservice используется для подключения, и поддерживаются все платформы Apple (iOS, OS X, watchOS и tvOS).

Все функции:

  • API Mimics для платформы Apple GameController (GCController)
  • Поддержка движения устройства в программных контроллерах
  • Пользовательские элементы контроллера
  • Пользовательское сопоставление элементов
  • На основе Wi-Fi, с поддержкой Bluetooth
  • Контроллер-экспедиторская
  • Работает с Apple TV Simulator
  • Неограниченное количество аппаратных контроллеров на Apple TV (с использованием переадресации контроллеров)
  • Возможность усовершенствовать недорогие скользящие / облегающие контроллеры с движением, расширенными элементами профиля и пользовательскими элементами
  • Поддержка контроллера iCade (отображается через профили MFi, поэтому они отображаются как оборудование MFi)
  • Легко внедряемое касание 3d на программных контроллерах
  • Использование экранных и Bluetooth-клавиатур с помощью программных контроллеров (в том числе с Apple TV)
  • Поддержка снимков (совместимых с форматом снимков Apple)
  • Swift 2.1
  • Framework на основе

Это выглядит как CFNetwork доступно на TvOS. Попробуйте этот вопрос для помощи по использованию CFNetwork,

РЕДАКТИРОВАТЬ: также взглянуть на CoreBluetooth, Я работаю над той же проблемой - я хочу иметь приложение для iPhone для моего приложения TvOS.

Ну, я не уверен, что это считается "хорошим способом", но GKMatchRequest а также GKMatchmaker там, так что, возможно, это то, что они используют.

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

Другие вопросы по тегам