Vraag Gebruik de iPhone als een gamecontroller in een tvOS-app?


Tijdens de aankondiging van Apple TV demonstreerden de ontwikkelaars van Crossy Road dat ze een iPhone als een 2e controller voor een Apple tv-game gebruikten:

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

Mijn eerste gedachte was om dit te implementeren met behulp van de Multipeer Connectivity Framework. Het wordt echter niet ondersteund op tvOS. Is er een goede manier om een ​​iPhone op een Apple TV aan te sluiten zonder Multipeer-connectiviteit?

Bijwerken: Het lijkt er niet op dat ik GameKit kan gebruiken omdat GKPeerPickerController is verwijderd van GameKit op tvOS.


20
2017-09-11 01:02


oorsprong


antwoorden:


Je kunt mijn bibliotheek proberen. Ik heb dit voor mijn apps gebouwd, misschien ook nuttig voor jou.

https://github.com/vivianaranha/TvOS_Remote

Apple TV-project (ontvanger)

Stap 1: Maak een TvOS-project en importeer de bestanden van RemoteReceiver

libRemoteReceiver.a

RemoteReceiver.h

Stap 2: importeer het bestand RemoteReceiver.h in uw ViewController.m-bestand

#import "RemoteReceiver.h"

Stap 3: Inside ViewController.m bestand voeg de volgende code toe

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

Stap 4: Inside viewDidLoad alloceer en stel de gedelegeerde in voor remoteReceiver

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

Stap 5: Implementeer de volgende deelnemersmethode voor berichten die worden verzonden vanuit de app voor iOS op afstand

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

iOS-project (afzender / afstandsbediening)

Stap 1: maak een iOS-project en importeer de bestanden vanuit RemoteSender

libRemoteSender.a

RemoteSender.h

Stap 2: importeer de RemoteSender-klasse in uw ViewController

#import "RemoteSender.h"

Stap 3: Update ViewController.m met de volgende code

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

Stap 4: toewijzen en initialiseren van het remoteSender-object

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

Stap 5: Pas gebaren en methoden toe (controleer hieronder voor alleen de knopcode)

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

10
2017-09-22 05:24



Ik heb een raamwerk ontwikkeld dat het maken van op software gebaseerde controllers ondersteunt en de invoer regisseert via een MFi-profiel, waardoor je een enkele codebase hebt die zowel software- als hardware-controllers afhandelt. Vele andere functies ook:

https://github.com/robreuss/VirtualGameController

NSNetservice wordt gebruikt voor connectiviteit en alle Apple-platforms worden ondersteund (iOS, OS X, watchOS en tvOS).

Alle functies:

  • Bootst API voor Apple na gamecontroller framework (GCController)
  • Apparaatbewegingsondersteuning in softwarecontrollers
  • Aangepaste controllerelementen
  • Aangepaste elementtoewijzing
  • WiFi-gebaseerd, met Bluetooth-fallback
  • Controller-forwarding
  • Werkt met Apple TV Simulator
  • Onbeperkt aantal hardware-controllers op Apple TV (met behulp van controller-forwarding)
  • Mogelijkheid om betaalbare slide-on / vorm passende controllers met beweging, uitgebreide profielelementen en aangepaste elementen te verbeteren
  • Ondersteuning van iCade-controller (in kaart gebracht via de MFi-profielen, zodat ze verschijnen als MFi-hardware)
  • Eenvoudig te implementeren 3D-touch op softwarecontrollers
  • Maak gebruik van schermtoetsen en Bluetooth-toetsenborden met software-controllers (ook met Apple TV)
  • Ondersteuning voor snapshots (compatibel met het momentopnameformaat van Apple)
  • Snel 2.1
  • -Kader op basis

6
2017-11-10 22:04



Het lijkt op CFNetwork is beschikbaar op TvOS. Proberen deze vraag voor hulp bij het gebruik CFNetwork.

EDIT: kijk ook eens naar CoreBluetooth. Ik ben bezig met hetzelfde probleem - ik wil een bijbehorende iPhone-app voor mijn TvOS-app.


3
2017-09-17 19:45



Nou, ik weet niet zeker of het kwalificeert als een "goede manier", maar GKMatchRequest en GKMatchmaker zijn daar, dus misschien gebruiken ze dit.

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


0
2017-09-12 06:44