Use iPhone as a game controller in a tvOS app?

后端 未结 4 1005
说谎
说谎 2020-12-23 21:52

During the Apple TV announcement, the developers of Crossy Road demonstrated using an iPhone as a 2nd controller for an Apple tv game:

http://www.macrumors.com/2015/

相关标签:
4条回答
  • 2020-12-23 22:32

    Well, I'm not sure it qualifies as a "good way", but GKMatchRequest and GKMatchmaker are in there, so maybe that's what they're using.

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

    0 讨论(0)
  • 2020-12-23 22:33

    I've developed a framework that supports the creation of software-based controllers and directs the input through a MFi profile, allowing you to have a single codebase that handles both software and hardware controllers. Many other features as well:

    https://github.com/robreuss/VirtualGameController

    NSNetservice is used for connectivity, and all Apple platforms are supported (iOS, OS X, watchOS and tvOS).

    All features:

    • Mimics API for Apple's GameController framework (GCController)
    • Device motion support in software controllers
    • Custom controller elements
    • Custom element mapping
    • WiFi-based, with Bluetooth fallback
    • Controller-forwarding
    • Works with Apple TV Simulator
    • Unlimited number of hardware controllers on Apple TV (using controller forwarding)
    • Ability to enhance inexpensive slide-on/form-fitting controllers with motion, extended profile elements and custom elements
    • iCade controller support (mapped through the MFi profiles so they appear as MFi hardware)
    • Easy-to-implement 3d touch on software controllers
    • Leverage on-screen and Bluetooth keyboards using software controllers (including with Apple TV)
    • Support for snapshots (compatible with Apple's snapshot format)
    • Swift 2.1
    • Framework-based
    0 讨论(0)
  • 2020-12-23 22:34

    You can try my library. I built this for my apps maybe helpful for you too.

    https://github.com/vivianaranha/TvOS_Remote

    Apple TV Project (Receiver)

    Step 1: Create a TvOS Project and import the files from RemoteReceiver

    libRemoteReceiver.a

    RemoteReceiver.h

    Step 2: In your ViewController.m file import the RemoteReceiver.h file

    #import "RemoteReceiver.h"
    

    Step 3: Inside ViewController.m file add the following code

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

    Step 4: Inside viewDidLoad alloc and set the delegate for remoteReceiver

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

    Step 5: Implement the following delegate method for messages send from iOS remote app

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

    iOS Project (Sender/Remote Control)

    Step 1: Create an iOS Project and import the files from RemoteSender

    libRemoteSender.a

    RemoteSender.h

    Step 2: Import the RemoteSender class in your ViewController

    #import "RemoteSender.h"
    

    Step 3: Update ViewController.m with the following code

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

    Step 4: Allocate and initialize the remoteSender object

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

    Step 5: Implement gestures and methods (Check below for just button code)

    - (IBAction)sendSomeInformation:(id)sender {
        NSDictionary *theDictionaryToSendToTV = @{@"name": @"John Smith",@"age": @"35", @"address":@"123 Main St"};
        [self.remoteSender sendInfo:theDictionaryToSendToTV];
    }
    
    0 讨论(0)
  • 2020-12-23 22:45

    It looks like CFNetwork is available on TvOS. Try this question for help on using CFNetwork.

    EDIT: also take a look at CoreBluetooth. I'm working on the same issue - I want to have a companion iPhone app for my TvOS app.

    0 讨论(0)
提交回复
热议问题