GameController adicionando um gamepad ao seu jogo

Ramires Nascimento
2 min readFeb 27, 2019

--

O GameController é o framework responsável por genrenciar a conexão com gamepads externos, que são conectados por bluetooth. Basicamente temos 4 tipos de controles:

  • GCGamePad: Representa o conjunto padrão de controles oferecidos por um game pada, ou seja não trava eventos do joystick analógico
https://developer.apple.com/library/archive/documentation/ServicesDiscovery/Conceptual/GameControllerPG/Art/featureshidgamecontrollerextendedformfittingsample_2x.png

GCExtendedGamePad: Representa um conjunto maior de funções do controle, que basicamente, são as mesmas do GCGamePad, mas com o joystick.

https://developer.apple.com/library/archive/documentation/ServicesDiscovery/Conceptual/GameControllerPG/Art/featuresHIDGameControllerExtendedNonFormFittingSample_2x.png
  • GCMicroGamePad: Representa os controles fornecidos pelo Siri Remote, que é o controle da Apple TV.
  • GCMotion: Representa a orientação e movimento do controle

Comunicação com o controle

A comunicação com os controles acontecem por meio de notificação do NotificationCenter, abaixo um exemplo de como se inscrever na notificação do GameController

Agora precisamos declarar tratar os eventos dos botões, o controller não oferece um delegatepara tratar os eventos. A forma como os eventos são tratados é através de funções handlers. a documentação mostra como deve ser essa função.

Vamos entender o que siginifica cada parâmetro.

  • GCControllerButtonInput → é o botão que sofreu a modificação
  • Float → é o valor normalizado entre 0 e 1
  • Bool → é o estado do botão
    - true: para pressionado
    - false: para não pressionado

Para tratar o evento podemos fazer de duas formas, que é criando um bloco de código ou escrevendo uma função, as duas abordagens são válidas, você escolhe a mais adequada para você, vamos ao código.

#com bloco de código

# usando funções

Elaborei o diagrama de conjuntos abaixo para que fique mais fácil de entender quais controles são suportados por cada controle.

Conclusão

Podemos ver que é muito simples se conectar com controles, isso foi somente o básico, mas é o bastante para você explorar mais sobre o funcionamento. Para ir mais a fundo, eu recomendo que você leia a documentação com calma, pois apesar de ser antiga, ajuda muito a entender as recomendações de uso da Apple. Isso evita que seu jogo não seja aceito por não está de acordo com as guidelines
https://developer.apple.com/library/archive/documentation/ServicesDiscovery/Conceptual/GameControllerPG/Introduction/Introduction.html#//apple_ref/doc/uid/TP40013276-CH1-SW1

--

--