GameMaker tem uma série de ações dedicadas que podem ser usadas para detectar tanto controles analógicos quanto digitais de múltiplos blocos de jogos conectados. Estas ações exigem que você especifique um valor de índice gamepad, que é um número (contando a partir de 0) que representa o gamepad a ser selecionado. Observe que quando um controle de jogo é conectado ao seu dispositivo (ou é removido), então um evento assíncrono do sistema é acionado (entretanto, para lidar com isso, você pode precisar usar código).
Os "slots" do gamepad são indexados de 0 com slots 0 - 3 inclusive sendo apenas para os gamepads Xinput, ou seja: controladores Xbox360 e compatíveis. Entretanto, você também pode verificar os slots 4 - 11 inclusive para os gamepads DirectInput, o que significa que você pode detectar muitos outros modelos de controladores quando conectado através destes slots.
Ao trabalhar com as ações do gamepad, a entrada pode vir de eixos, botões ou chapéus, que GameMaker atribuirá às seguintes constantes embutidas (note que "chapéus" geralmente são detectados apenas em controladores não padrão):
Constante | Descrição |
---|---|
gp_face1 | Botão de cima 1 (este mapa para o "A" em um controlador Xbox 360 e a cruz em um controlador PS) |
gp_face2 | Botão de cima 2 (este mapa para o "B " em um controlador Xbox 360 e o círculo em um controlador PS) |
gp_face3 | Botão de cima 3 (este mapa para o "X " em um controlador Xbox 360 e o quadrado em um controlador PS) |
gp_face4 | Botão superior 4 (este mapa mostra o "Y" em um controlador Xbox 360 e o triângulo em um controlador PS) |
gp_shoulderl | Botão de ombro esquerdo |
gp_shoulderlb | Gatilho do ombro esquerdo |
gp_shoulderr | Botão de ombro direito |
gp_shoulderrb | Gatilho de ombro direito |
gp_select | O botão select (em um controlador DS4, isto aciona quando você pressiona o touchpad para baixo) |
gp_start | O botão start (este é o botão "opções" em um controlador PS4) |
gp_stickl | O bastão esquerdo pressionado (como um botão) |
gp_stickr | O bastão direito pressionado (como um botão) |
gp_padu | D-pad up |
gp_padd | D-pad down |
gp_padl | D-pad esquerda |
gp_padr | Direito D-pad |
gp_axislh | Vara esquerda eixo horizontal (analógico) |
gp_axislv | Eixo vertical da vara esquerda (analógico) |
gp_axisrh | Eixo horizontal do bastão direito (analógico) |
gp_axisrv | Eixo vertical do bastão direito (analógico) |
Para entender melhor exatamente que parte do controlador cada constante representa, você pode se referir à seguinte imagem de um gamepad padrão Xinput:
As ações de gamepad disponíveis estão todas listadas abaixo:
A lista a seguir mostra a compatibilidade atual entre as plataformas (note que isto mudará com futuras atualizações):
sudo apt-get install jstest-gtk
sudo apt-get install joystick.