Compartir a través de


RawGameController Clase

Definición

Representa cualquier tipo de controlador de juego.

public ref class RawGameController sealed : IGameControllerBatteryInfo
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 262144)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class RawGameController final : IGameControllerBatteryInfo
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 262144)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class RawGameController : IGameControllerBatteryInfo
Public NotInheritable Class RawGameController
Implements IGameControllerBatteryInfo
Herencia
Object Platform::Object IInspectable RawGameController
Atributos
Implementaciones

Requisitos de Windows

Familia de dispositivos
Windows 10 Creators Update (se introdujo en la versión 10.0.15063.0)
API contract
Windows.Foundation.UniversalApiContract (se introdujo en la versión v4.0)

Ejemplos

El siguiente fragmento de código muestra cómo recorrer en bucle la lista RawGameController.RawGameControllers y agregar cada RawGameController a un vector. Tendrás que poner un bloqueo en el vector, ya que las cosas pueden cambiar en cualquier momento (un controlador podría estar desconectado o reconectado, por ejemplo).

#include <concrt.h>
#include <winrt/Windows.Gaming.Input.h>
using namespace winrt;
using namespace Windows::Gaming::Input;
...
std::vector<RawGameController> myRawGameControllers;
concurrency::critical_section myLock{};

for (auto const& rawGameController : RawGameController::RawGameControllers())
{
    // Test whether the raw game controller is already in myRawGameControllers; if it isn't, add it.
    concurrency::critical_section::scoped_lock lock{ myLock };
    auto it{ std::find(begin(myRawGameControllers), end(myRawGameControllers), rawGameController) };

    if (it == end(myRawGameControllers))
    {
        // This code assumes that you're interested in all raw game controllers.
        myRawGameControllers.push_back(rawGameController);
    }
}

Comentarios

Las instancias de la clase RawGameController no se pueden crear directamente; en su lugar, las instancias de la clase se recuperan a través de la propiedad RawGameController.RawGameControllers que enumera todos los controladores de juego conectados o a través del evento RawGameController.RawGameControllerAdded .

Todas las entradas disponibles en rawGameController se exponen como matrices simples de botones, modificadores y ejes sin nombre. Con esta clase, puede permitir a los clientes crear asignaciones de entrada personalizadas independientemente del tipo de controlador que usen.

Deberá crear estas matrices usted mismo y, a continuación, rellenarlas mediante GetCurrentReading para determinar los estados de los botones, modificadores y ejes. Consulte la documentación de esa función para obtener más información.

Consulta Raw game controller para obtener información sobre cómo usar la clase RawGameController .

Historial de versiones

Versión de Windows Versión del SDK Valor agregado
1709 16299 DisplayName
1709 16299 NonRoamableId
1709 16299 SimpleHapticsControllers

Propiedades

AxisCount

Número de ejes en el controlador de juego sin procesar.

ButtonCount

Número de botones en el controlador de juego sin formato.

DisplayName

Nombre del controlador, proporcionado por el hardware.

ForceFeedbackMotors

La lista de motores de fuerza de respuesta en el controlador de juego sin procesar.

HardwareProductId

Identificador del producto de hardware del controlador de juego sin procesar.

HardwareVendorId

Identificador del proveedor de hardware del controlador de juego sin procesar.

Headset

Los auriculares de audio conectados al controlador de juego sin procesar.

IsWireless

Obtiene un valor que indica el estado inalámbrico del controlador de juego sin procesar.

NonRoamableId

Identificador único que identifica el controlador. Siempre que el controlador esté conectado, el identificador nunca cambiará.

RawGameControllers

La lista de todos los controladores de juegos sin procesar conectados.

SimpleHapticsControllers

Colección de objetos SimpleHapticsController que representan todos los motores de comentarios hápticos disponibles en el dispositivo.

SwitchCount

Número de interruptores en el controlador de juego sin procesar.

User

El usuario asociado al controlador de juego sin formato.

Métodos

FromGameController(IGameController)

Devuelve el controlador de juego especificado como un controlador de juego sin procesar.

GetButtonLabel(Int32)

Recupera la etiqueta del botón para el botón especificado.

GetCurrentReading(Boolean[], GameControllerSwitchPosition[], Double[])

Obtiene una instantánea del estado del controlador de juego sin procesar.

GetSwitchKind(Int32)

Obtiene el tipo del modificador especificado en el controlador de juego sin formato.

TryGetBatteryReport()

Obtiene información sobre el estado actual de la batería del controlador de juego sin procesar.

Eventos

HeadsetConnected

Indica cuándo se conecta un casco al controlador de juego sin procesar.

HeadsetDisconnected

Indica cuándo se desconecta un casco del controlador de juego sin procesar.

RawGameControllerAdded

Indica cuándo se conecta un nuevo controlador de juego sin procesar.

RawGameControllerRemoved

Indica cuándo se desconecta un controlador de juego sin procesar.

UserChanged

Indica cuándo ha cambiado el usuario asociado al controlador de juego sin procesar.

Se aplica a

Consulte también