> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# GameInputSensorsState

> Referência da struct GameInputSensorsState: relata acelerômetro, girômetro, direção da bússola e quatérnio de orientação para sensores do GameInput.

# GameInputSensorsState

Descreve o estado dos sensores.

<a id="syntaxSection" />

## Sintaxe

```cpp theme={null}
struct GameInputSensorsState
{
    // GameInputSensorsAccelerometer
    float accelerationInGX;
    float accelerationInGY;
    float accelerationInGZ;

    // GameInputSensorsGyrometer
    float angularVelocityInRadPerSecX;
    float angularVelocityInRadPerSecY;
    float angularVelocityInRadPerSecZ;

    // GameInputSensorsCompass
    float headingInDegreesFromMagneticNorth;
    GameInputSensorAccuracy headingAccuracy;

    // GameInputSensorsOrientation
    float orientationW;
    float orientationX;
    float orientationY;
    float orientationZ;
};
```

<a id="membersSection" />

### Membros

*accelerationInGX*<br />
Tipo: float

Aceleração linear, em força g, em relação ao eixo x. Válido se `GameInputSensorsInfo` relatar `GameInputSensorsKindAccelerometer`.

*accelerationInGY*<br />
Tipo: float

Aceleração linear, em força g, em relação ao eixo y. Válido se `GameInputSensorsInfo` relatar `GameInputSensorsKindAccelerometer`.

*accelerationInGZ*<br />
Tipo: float

Aceleração linear, em força g, em relação ao eixo z. Válido se `GameInputSensorsInfo` relatar `GameInputSensorsKindAccelerometer`.

*angularVelocityInRadPerSecX*<br />
Tipo: float

Velocidade angular, em radianos por segundo, em relação ao eixo x. Válido se `GameInputSensorsInfo` relatar
`GameInputSensorsKindGyrometer`.

*angularVelocityInRadPerSecY*<br />
Tipo: float

Velocidade angular, em radianos por segundo, em relação ao eixo y. Válido se `GameInputSensorsInfo` relatar
`GameInputSensorsKindGyrometer`.

*angularVelocityInRadPerSecZ*<br />
Tipo: float

Velocidade angular, em radianos por segundo, em relação ao eixo z. Válido se `GameInputSensorsInfo` relatar
`GameInputSensorsKindGyrometer`.

*headingInDegreesFromMagneticNorth*<br />
Tipo: float

Direção, em graus, a partir do norte magnético. Intervalo: \[0, 360). Válido se `GameInputSensorsInfo` relatar
`GameInputSensorsKindCompass`.

*headingAccuracy*<br />
Tipo: [GameInputSensorAccuracy](/pt-BR/reference/input/gameinput/enums/gameinputsensoraccuracy)

Precisão da direção. Válido se `GameInputSensorsInfo` relatar `GameInputSensorsKindCompass`.

*orientationW*<br />
Tipo: float

O componente w de um quatérnio que representa a orientação do dispositivo. Válido se `GameInputSensorsInfo` relatar
`GameInputSensorsKindOrientation`.

*orientationX*<br />
Tipo: float

O componente x de um quatérnio que representa a orientação do dispositivo. Válido se `GameInputSensorsInfo` relatar
`GameInputSensorsKindOrientation`.

*orientationY*<br />
Tipo: float

O componente y de um quatérnio que representa a orientação do dispositivo. Válido se `GameInputSensorsInfo` relatar
`GameInputSensorsKindOrientation`.

*orientationZ*<br />
Tipo: float

O componente z de um quatérnio que representa a orientação do dispositivo. Válido se `GameInputSensorsInfo` relatar
`GameInputSensorsKindOrientation`.

<a id="remarksSection" />

## Comentários

Essa estrutura é usada pelo método [IGameInputReading::GetSensorsState](/pt-BR/reference/input/gameinput/interfaces/igameinputreading/methods/igameinputreading_getsensorsstate).

Para obter mais informações, consulte [Leituras do GameInput](/pt-BR/build/core-features/common/input/overviews/input-readings).

A presença de dados válidos é indicada por [GameInputKindSensors](/pt-BR/reference/input/gameinput/enums/gameinputkind) em
[GameInputDeviceInfo](/pt-BR/reference/input/gameinput/structs/gameinputdeviceinfo). Os dados que não forem relatados como presentes serão preenchidos
com valores padrão de repouso.

### Sistema de coordenadas

Espera-se que os dispositivos relatem a aceleração do dispositivo como um sistema destro com Y para cima. A velocidade angular segue a regra
da mão direita em torno desses eixos.

| Sistema de coordenadas do gamepad | Sistema de coordenadas do portátil |
| - | - |
| <img src="https://mintcdn.com/microsoft-4404708b/5IpvKlT-jmAaVkeY/images/input-sensors-coordinates-gamepad.png?fit=max&auto=format&n=5IpvKlT-jmAaVkeY&q=85&s=cd864c92015f0cc7389d8c43e42e71af" alt="Sistema de coordenadas dos sensores mostrado em um gamepad" height="300" data-path="images/input-sensors-coordinates-gamepad.png" /> | <img src="https://mintcdn.com/microsoft-4404708b/5IpvKlT-jmAaVkeY/images/input-sensors-coordinates-handheld.png?fit=max&auto=format&n=5IpvKlT-jmAaVkeY&q=85&s=4d9b1548f5b414ab28b2772c4d937c80" alt="Sistema de coordenadas dos sensores mostrado em um portátil" height="300" data-path="images/input-sensors-coordinates-handheld.png" /> |

O eixo X vai do centro do dispositivo em direção à direita. O eixo Y vai do centro do dispositivo em direção
ao rosto do usuário. O eixo Z vai do centro do dispositivo para fora pela parte inferior.

Exemplo de saída de aceleração, em g:

* Dispositivo deitado sobre a mesa: {0, 1, 0}
  * A velocidade angular em repouso, em radianos por segundo, é {0, 0, 0}
* A partir daí, levante o dispositivo: aumenta {0, 2, 0}
* A partir daí, solte o dispositivo: diminui {0, 0, 0}
* Gire o dispositivo de forma que a borda superior fique no ar e a borda inferior fique na superfície: {0, 0, -1}
  * Durante o movimento, a velocidade angular X torna-se positiva: {2, 0, 0}
* Volte à posição plana.
* Gire o dispositivo de forma que a borda esquerda fique no ar e a borda direita fique na superfície: {-1, 0, 0}
  * Durante o movimento, a velocidade angular Z torna-se negativa: {0, 0, -2}
* Volte à posição plana.
* Gire o dispositivo no sentido horário (oposto à regra da mão direita)
  * Durante o movimento, a velocidade angular Y torna-se negativa: {0, -2, 0}

<a id="requirementsSection" />

## Requisitos

**Cabeçalho:** GameInput.h

**Plataformas com suporte:** Windows, consoles da família XBOX One e consoles XBOX Series

<a id="seealsoSection" />

## Documentação conceitual

* [Criação de sensores do GameInput](/pt-BR/build/core-features/common/input/hardware/input-hardware-sensors)

## Confira também

[Visão geral do GameInput](/pt-BR/build/core-features/common/input/overviews/input-overview)<br />
[GameInput](/pt-BR/reference/input/gameinput/gameinput_members)

## Histórico de versões

| Versão | Alterações |
| - | - |
| **v2** | **Nova struct** introduzida na v2 com campos de estado de sensor para acelerômetro, girômetro, bússola e orientação. |
| **v1** | Não presente. |
| **v0** | Não presente. |


## Related topics

- [IGameInputReading::GetSensorsState](/pt-BR/reference/input/gameinput/interfaces/igameinputreading/methods/igameinputreading_getsensorsstate.md)
- [GameInputSensorsKind](/pt-BR/reference/input/gameinput/enums/gameinputsensorskind.md)
- [Sensores no GameInput](/pt-BR/build/core-features/common/input/hardware/input-hardware-sensors.md)
- [GameInputSensorAccuracy](/pt-BR/reference/input/gameinput/enums/gameinputsensoraccuracy.md)
- [GameInput](/pt-BR/reference/input/gameinput/gameinput_members.md)
