2015-09-11 14 views
20

Während der TV-Ankündigung von Apple, die Entwickler von Crossy Straße demonstrierten ein iPhone als zweiten Controller für ein Apple-TV-Spiel mit:Verwenden Sie das iPhone als Gamecontroller in einer tVOS App?

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

Mein erster Gedanke war dies die Multipeer Connectivity Framework mit umzusetzen. Es wird jedoch nicht auf tvOS unterstützt. Gibt es eine gute Möglichkeit, ein iPhone mit einem Apple TV ohne Multipeer Connectivity zu verbinden?

Update: Es scheint nicht, dass ich GameKit verwenden kann, weil GKPeerPickerController aus GameKit auf tvOS entfernt wurde.

Antwort

0

Nun, ich bin mir nicht sicher, ob es sich um einen "guten Weg" handelt, aber GKMatchRequest und GKMatchmaker sind da drin, vielleicht benutzen sie das also.

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

+1

Leider hat GKPeerPickerController von GameKit auf tvOS entfernt. – AaronBaker

+1

Nicht sicher, ob dies auf tvOS unterstützt wird https://developer.apple.com/library/ios/samplecode/WiTap/Introduction/Intro.html –

3

Es sieht aus wie CFNetwork auf TvOS zur Verfügung steht. Versuchen Sie this question für Hilfe bei der Verwendung CFNetwork.

EDIT: siehe auch CoreBluetooth. Ich arbeite an demselben Problem - ich möchte eine begleitende iPhone-App für meine TvOS-App haben.

10

Sie können meine Bibliothek versuchen. Ich habe das für meine Apps vielleicht auch hilfreich für Sie erstellt.

https://github.com/vivianaranha/TvOS_Remote

Apple TV-Projekt (Receiver)

Schritt 1: TvOS Projekt erstellen und importieren Sie die Dateien von RemoteReceiver

libRemoteReceiver.a

RemoteReceiver.h

Schritt 2: Importieren Sie in Ihrer ViewController.m-Datei die RemoteReceiver.h-Datei

#import "RemoteReceiver.h" 

Schritt 3: Innerhalb ViewController.m Datei fügen Sie den folgenden Code

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

Schritt 4: Inside viewDidLoad alloc und stellen Sie den Delegierten für remoteReceiver

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

Schritt 5: Implementieren der folgende Delegiertenmethode für Nachrichten von iOS-Remote-App senden

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

iOS-Projekt (Sender/Remote Control)

Schritt 1: ein iOS-Projekt erstellen und die Dateien von Remotesender

libRemoteSender.a

Remotesender importieren.h

Schritt 2: Importieren Sie die Remotesender Klasse in Ihrem Viewcontroller

#import "RemoteSender.h" 

Schritt 3: Update ViewController.m mit dem folgenden Code

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

Schritt 4: Weisen und das Remotesender Objekt initialisieren

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

Schritt 5: Implementieren Sie Gesten und Methoden (siehe unten für nur Button-Code)

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

Das sieht interessant aus. Gibt es eine Chance, dass Sie Unterstützung zum Senden und Empfangen von benutzerdefinierten Ereignissen hinzufügen können? Wie vielleicht ein UserInfo NSDictionary. – David

+0

Ich kann anpassen, um jetzt etwas hinzuzufügen. Ich werde es in ein paar Tagen nützlicher machen. Derzeit arbeite ich an einer eigenen Multiplayer-App – vivianaranha

+0

Das sieht gut aus.Wie können Sie sicher sein, dass Sie eine Verbindung zum richtigen Apple TV herstellen? Ich sehe keine IDs – AlexKoren

6

Ich habe einen Rahmen entwickelt, der die Erstellung von Software-basierten Steuerungen und leitet die Eingabe durch ein MFi Profil unterstützt, so dass Sie einen einzigen Code-Basis haben, die sowohl Software- als auch Hardware-Controller verarbeitet. Viele andere Eigenschaften als auch:

https://github.com/robreuss/VirtualGameController

NSNetservice wird für die Verbindung verwendet und alle Apple-Plattformen werden unterstützt (iOS, OS X, watchOS und tvOS).

Alle Merkmale:

  • Mimics API für Gamecontroller Rahmen von Apple (GCController)
  • Gerätebewegungsunterstützung in Softwareregler
  • Bedien-Kontrollgerät Elemente
  • Benutzerdefinierte Elementabbildung
  • WiFi- basiert, mit Bluetooth Fallback
  • Con Troller-Spedition
  • Arbeiten mit Apple TV Simulator
  • Unbegrenzte Anzahl von Hardware-Controllern auf Apple TV (mit Controller-Forwarding)
  • Fähigkeit kostengünstiges Dia-on/formschlüssige Controller mit Bewegungs, erweiterten Profilelemente und benutzerdefinierten zu verbessern Elemente
  • iCade-Controller-Unterstützung (durch die Profile MFi abgebildet, so dass sie als MFi Hardware erscheinen)
  • 3D Touch-Controller mit Software-Controller (einschließlich mit Apple
  • Leverage auf dem Bildschirm und Bluetooth-Tastaturen auf Software einfach implementierende TV)
  • Unterstützung für Snapshots (kompatibel mit Snapshot-Format von Apple)
  • Swift 2.1
  • Framework-basierten
+0

Dies sollte die Antwort in einer idealen Welt sein! – user3069232

+0

Danke! Ich hoffe, einige Leute finden es nützlich. –