Condividi tramite


RawGameController Classe

Definizione

Rappresenta qualsiasi tipo di controller di gioco.

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
Ereditarietà
Object Platform::Object IInspectable RawGameController
Attributi
Implementazioni

Requisiti Windows

Famiglia di dispositivi
Windows 10 Creators Update (è stato introdotto in 10.0.15063.0)
API contract
Windows.Foundation.UniversalApiContract (è stato introdotto in v4.0)

Esempio

Il frammento di codice seguente illustra come eseguire il ciclo attraverso l'elenco RawGameController.RawGameControllers e aggiungere ogni RawGameController a un vettore. È necessario inserire un blocco sul vettore, perché gli elementi possono cambiare in qualsiasi momento (un controller potrebbe essere disconnesso o riconnesso, ad esempio).

#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);
    }
}

Commenti

Le istanze della classe RawGameController non possono essere create direttamente; Le istanze della classe vengono invece recuperate tramite la proprietà RawGameController.RawGameControllers che elenca tutti i controller di gioco connessi o tramite l'evento RawGameController.RawGameControllerAdded .

Tutti gli input disponibili in un RawGameController sono esposti come matrici semplici di pulsanti, commutatori e assi senza nome. Usando questa classe, è possibile consentire ai clienti di creare mapping di input personalizzati indipendentemente dal tipo di controller in uso.

È necessario creare queste matrici manualmente e quindi popolarle usando GetCurrentReading per determinare gli stati dei pulsanti, dei commutatori e degli assi. Per altre informazioni, vedere la documentazione della funzione.

Per informazioni su come usare la classe RawGameController, vedere Controller di gioco non elaborato.

Cronologia delle versioni

Versione di Windows Versione dell'SDK Valore aggiunto
1709 16299 DisplayName
1709 16299 NonRoamableId
1709 16299 SimpleHapticsControllers

Proprietà

AxisCount

Numero di assi sul controller di gioco non elaborato.

ButtonCount

Numero di pulsanti sul controller di gioco non elaborato.

DisplayName

Nome del controller, fornito dall'hardware.

ForceFeedbackMotors

Elenco dei motori di feedback forza nel controller di gioco non elaborato.

HardwareProductId

ID prodotto hardware del controller di gioco non elaborato.

HardwareVendorId

ID fornitore hardware del controller di gioco non elaborato.

Headset

Visore audio collegato al controller di gioco non elaborato.

IsWireless

Ottiene un valore che indica lo stato wireless del controller di gioco non elaborato.

NonRoamableId

ID univoco che identifica il controller. Purché il controller sia connesso, l'ID non cambierà mai.

RawGameControllers

Elenco di tutti i controller di gioco non elaborati connessi.

SimpleHapticsControllers

Raccolta di oggetti SimpleHapticsController che rappresentano tutti i motori di feedback aptici disponibili nel dispositivo.

SwitchCount

Numero di commutatori sul controller di gioco non elaborato.

User

L'utente associato al controller di gioco non elaborato.

Metodi

FromGameController(IGameController)

Restituisce il controller di gioco specificato come controller di gioco non elaborato.

GetButtonLabel(Int32)

Recupera l'etichetta del pulsante per il pulsante specificato.

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

Ottiene uno snapshot dello stato del controller di gioco non elaborato.

GetSwitchKind(Int32)

Ottiene il tipo dell'interruttore specificato sul controller del gioco non elaborato.

TryGetBatteryReport()

Ottiene informazioni sullo stato corrente della batteria del controller di gioco non elaborato.

Eventi

HeadsetConnected

Segnala quando un visore visore è collegato al controller di gioco non elaborato.

HeadsetDisconnected

Segnala quando un visore visore viene disconnesso dal controller di gioco non elaborato.

RawGameControllerAdded

Segnala quando un nuovo controller di gioco non elaborato è connesso.

RawGameControllerRemoved

Segnala quando un controller di gioco non elaborato viene disconnesso.

UserChanged

Segnala quando l'utente associato al controller di gioco non elaborato è cambiato.

Si applica a

Vedi anche