GameController Namespace
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
The GameController namespace provides support for external game controllers.
Classes
GCController |
A game controller, either form-fitting or extended wireless. |
GCController.Notifications |
Notification posted by the GCController class. |
GCControllerAxisInput |
A GCControllerElement representing a joystick. |
GCControllerButtonInput |
A GCControllerElement representing a game-controller button. |
GCControllerDirectionPad |
A GCControllerElement representing a direction-pad. |
GCControllerElement |
The base class for input elements of a game controller. |
GCEventViewController |
View controller that can switch event delivery between the responder chain and the game controller. |
GCExtendedGamepad |
A gamepad with two shoulder buttons, two triggers, two thumbsticks, a D-Pad, and a directional button array. |
GCExtendedGamepadSnapshot |
A serializable snapshot of the game controller's state. |
GCGamepad |
A gamepad with two shoulder buttons, a D-Pad, and a directional button array.. |
GCGamepadSnapshot |
A serializable snapshot of the game controller's state. |
GCMicroGamepad |
A logical mapping of hardware controller controls to a set of in-game elements. |
GCMicroGamepadSnapshot |
Gets snapshots of the state of a micro gamepad. |
GCMotion |
Holds position data of a game controller. |
Structs
GCExtendedGamepadSnapshotData | |
GCExtendedGamepadSnapShotDataV100 |
The state of a GCExtendedGamepad. Produced by TryGetSnapShotData(NSData, GCExtendedGamepadSnapShotDataV100). |
GCGamepadSnapShotDataV100 |
The state of a GCGamepad. Produced by TryGetSnapshotData(NSData, GCGamepadSnapShotDataV100). |
GCMicroGamepadSnapshotData | |
GCMicroGamepadSnapShotDataV100 |
Represents the instantaneous state of a micro gamepad in V100 format at a point in time. |
Enums
GCControllerPlayerIndex |
Enumerates player controller indices. |
GCExtendedGamepadSnapshotDataVersion | |
GCMicroGamepadSnapshotDataVersion |
Delegates
GCControllerAxisValueChangedHandler |
The delegate used as the value-changed handler for ValueChangedHandler. |
GCControllerButtonValueChanged |
Handler that can be passed to the SetPressedChangedHandler(GCControllerButtonValueChanged) method to respond to changes to button states. |
GCControllerDirectionPadValueChangedHandler |
The delegate used as the value-changed handler for ValueChangedHandler. |
GCExtendedGamepadValueChangedHandler |
The delegate used as the value-changed handler for ValueChangedHandler. |
GCGamepadValueChangedHandler |
The delegate used as the value-changed handler for ValueChangedHandler. |
GCMicroGamepadValueChangedHandler |
A handler that is called whenever any single element of a controller changes. |
Remarks
The Game Controller namespace was added in iOS 7 and adds support for game controllers.
Game controllers come in two forms: "form-fitting" controllers that contain an iOS device and "extended wireless" controllers that wirelessly connect to an iOS device or a Mac.
Game controllers must be optional components: game developers must make their game playable by users who do not have game controllers.
Form-fitting controllers are automatically discovered by the system. Extended wireless controllers are discovered by the system subsequent to the application developer calling StartWirelessControllerDiscovery and will cause the M:GameController.GCController+Notifications.ObserveDidConnect* notification handler to fire. When wireless controller disconnect, the ObserveDidDisconnect notification fires.
There are two supported profiles for Game Controllers: GCGamepad and T:GameController.CGExtendedGamepad. A GCController will have a non-null value for either its P:GameController.CGController.Gamepad or its P:GameController.CGController.ExtendedGamepad property, the application developer must read those to determine the type.
T:GameController.CGGamepad s have two shoulder buttons, a D-pad (see T:GameController. GCControllerDirectionPad), and 4 face buttons labeled Y-B-A-X.
T:GameController.CGExtendedGamepad s have the same elements, plus two trigger buttons and two joysticks (see GCControllerAxisInput). Apple conceptual schematics additionally show an LED array, but there is currently no programmatic access to this element.
There are three ways to read game controller data:
Technique | Method(s) | Use |
---|---|---|
Polling | Properties such as P:GameController.GCControllerButtonInput.Pressed or XAxis | Directly read from the game-loop (see Update). |
Event-driven | Element's ValueChangedHandler property (such as M:GameController.GControllerButtonInput.ValueChangedHandler*) | Game Controller processes updates on the main thread. The framework ensures that simultaneously-occurring events result in a series of single callbacks. |
Coordinated Snapshot | M:GameController.CGGamepad.SaveSnapshot* , M:GameController.CGExtendedGamepad.SaveSnapshot* | Snapshots the controller state. Appropriate for marshalling, serialization, or delayed processing. |
The major classes in the Game Controller namespace are shown in the following illustration: