GMBR
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.
Entrar

Esqueci-me da senha

Últimos assuntos
» player não consegue andar
por lovn7 Qui 21 Nov 2024, 13:33

» É possível fazer istó no game maker
por William Lima Qui 21 Nov 2024, 10:56

» Rio Rise - novo launcher do Gta San Andreas SAMP Brasil
por Lua Sáb 16 Nov 2024, 20:22

» (Resolvido) Cenario longo x Texture Pages
por josuedemoraes Sáb 16 Nov 2024, 15:31

» Kids' band
por Adilson Lucindo Santos Sex 15 Nov 2024, 12:23

» (RESOLVIDO) Engasgos-Troca de Sprites/animações
por josuedemoraes Ter 12 Nov 2024, 01:49

» Block Room - DEMO
por Joton Qua 06 Nov 2024, 22:58

» Game Infinito vertical (subindo)
por macmilam Sáb 26 Out 2024, 12:36

» Retorno da GMBR!!!
por Dancity Ter 22 Out 2024, 16:36

» Máquina de estados
por aminaro Qui 10 Out 2024, 13:33

» como faço pra um objeto colidir com o outro e diminuir a vida do player ?
por josuedemoraes Qui 03 Out 2024, 16:51

» RESOLVIDO: Colisão com objetos moveis
por josuedemoraes Qua 02 Out 2024, 20:28

» Crypt of the Blood Moon
por divin sphere Qua 11 Set 2024, 18:18

» como fazer um objeto seguir?
por divin sphere Dom 18 Ago 2024, 18:08

» Procuro de alguém para Modelar/Texturizar/Animar objetos 3D
por un00brn Dom 11 Ago 2024, 11:10

» Destruição de cenário (estilo DD Tank)
por CoronelZeg Sex 09 Ago 2024, 17:16

» RESOLVIDO-Como destruir uma instancia especifica de um objeto
por josuedemoraes Ter 23 Jul 2024, 00:40

» Automatizar a coleta de id
por GabrielXavier Seg 22 Jul 2024, 18:01

» Preciso de ajuda para concluir um pequeno projeto
por lmoura Qui 27 Jun 2024, 15:45

» ANGULO ACOMPANHAR O OBJETO
por Klinton Rodrigues Qui 27 Jun 2024, 08:34

» Musica reinicia quando sala reinicia
por GabrielXavier Ter 18 Jun 2024, 07:28

» como fazer uma copia de gd
por generico_cube Sex 14 Jun 2024, 15:48

» Square Adventure
por guilherme551 Ter 11 Jun 2024, 09:54

» como posso definir limite de uma variavel
por GabrielXavier Sex 07 Jun 2024, 14:14

» [Resolvido] Dúvida, colisão única de objeto
por vdm842 Sex 24 maio 2024, 09:50


[Lista]Descrição dos comandos de gamepad do GMS.

4 participantes

Ir para baixo

[Lista]Descrição dos comandos de gamepad do GMS. Empty [Lista]Descrição dos comandos de gamepad do GMS.

Mensagem por CRP-Max Dom 08 Set 2013, 11:43

Como temos um concurso sobre o OUYA começando, acho que muita gente vai migrar para o Game Maker Studio.
Assim sendo, resolvi listar e traduzir todos os comandos usados, para uso do controle (gamepad) do OUYA.

Lista de comandos para gamepad do GMS.

gamepad_is_supported

Código:
gamepad_is_supported
Descrição:

Retorna se gamepads são suportadas pela plataforma de destino.

Com esta função, você pode descobrir se a plataforma de destino suporta gamepads (retorna true) ou não (retorna false).

Exemplo:

Código:
global.GP = gamepad_is_supported = ();
O código acima verifica se um gamepad é suportado e armazena o valor de retorno em uma variável global para verificações futuras.
gamepad_get_device_count

Código:
gamepad_get_device_count
Descrição:

Retorna o número de gamepads conectados ou o número de slots disponíveis para gamepads.
Esta função irá lhe dizer uma de duas coisas. Ou o número de gamepads conectados, ou o número de "slots" disponíveis
para gamepads para ser ligado. O valor de retorno real dependerá da plataforma e a configuração interna da plataforma e que,
como tal, esta função deve ser utilizado em conjunto com a função "gamepad_is_connected" para certificar-se do número exato
de controles ligados a qualquer momento.

Exemplo:

Código:
var gp_num = gamepad_get_device_count = ();
  for (var i = 0; i <gp_num; i + +;)
     {
     if gamepad_is_connected (i) global.gp [i] = true else global.gp [i] = false;
     }
Este loop de código acima, verifica os gamepads disponíveis (ou slots de gamepad) e então retorna cada um para um gamepad ligado.
O valor retornado é então usado para definir uma matriz global de verdadeiro ou falso, para uso em futuras verificações.
gamepad_is_connected

Código:
gamepad_is_connected
Descrição:

Retorna se um determinado gamepad está conectado.
Esta função irá retornar se um gamepad está ligado a um determinado "compartimento" (retorna true) ou não (retorna false).
Você usaria normalmente esta função em conjunto com a função "gamepad_get_device_count" para obter o número correto de gamepads
disponíveis e / ou gamepad "slots".

Exemplo:

Código:
var gp_num = gamepad_get_device_count = ();
  for (var i = 0; i <gp_num; i + +;)
     {
     if gamepad_is_connected (i) global.gp [i] = true else global.gp [i] = false;
     }
Este loop de código acima, verifica os gamepads disponíveis (ou slots de gamepad) e então retorna cada um para um gamepad ligado.
O valor retornado é então usado para definir uma matriz global de verdadeiro ou falso para uso em futuras verificações.
gamepad_get_description

Código:
gamepad_get_description
Descrição:

Retorna uma string descritiva para o dado gamepad.
Esta função irá retornar uma string com a descrição do gamepad, por exemplo, um controlador de PS3 pode retornar uma informação
semelhante ao "PLAYSTATION (R) 3 Controller", ou um controlador de XBox360 poderia retornar "Xbox 360 Controller
(XInput PADRÃO GAMEPAD) ". Esta cadeia é dependente de hardware e o valor retornado, dependerá dos joysticks conectados, no
dispositivo "compartimento" que está sendo verificado.

Exemplo:

Código:
var gp_num = gamepad_get_device_count = ();
  for (var i = 0; i <gp_num; i + +;)
     {
     gamepad_is_connected se (i)
        {
        draw_text (32, 32 + (i * 32), gamepad_get_description (i));
        }
     else
        {
        draw_text (32, 32 + (i * 32): "Nenhum controle detectado.");
        }
     }
gamepad_get_button_threshold

Código:
gamepad_get_button_threshold
Descrição:

Retorna a configuração limite dos botões analógicos.
Esta função pode ser utilizada para detectar a configuração do limite de corrente dos botões analógicos, para um determinado
dispositivo. O limite padrão para todos os botões analógicos é de 0,5, com a faixa de ser de 0 a 1.
O threshold define em que ponto o botão é considerado como sendo "pressionado" para os jogos que necessitam deles para atuar
como um botão digital.

Exemplo:

Código:
if gamepad_get_button_threshold (0)! = 0,5
     {
     gamepad_set_button_threshold (0, 0,5);
     }
O código acima verifica o limite de botão analógico do gamepad ligado ao "compartimento 0" e se não é o valor padrão de 0.5, ele é definido para esse valor.
gamepad_set_button_threshold

Código:
gamepad_set_button_threshold
Descrição:

Define o limite para os botões analógicos do dispositivo dado.
Esta função pode ser usada para definir a configuração actual limite dos botões analógicos para um determinado dispositivo.
O limite padrão para todos os botões analógicos é de 0,5, com a faixa de ser de 0 a 1.
O threshold define em que ponto o botão é considerado como sendo "pressionado" para os jogos que necessitam deles para atuar
como um botão digital.

Exemplo:

Código:
if gamepad_get_button_threshold (0)! = 0,5
     {
     gamepad_set_button_threshold (0, 0,5);
     }
O código acima verifica o limite de botão analógico do gamepad ligado ao "compartimento 0" e se não é o valor padrão de 0.5, ele é definido para esse valor.
gamepad_axis_count

Código:
gamepad_axis_count
Descrição:

Retorna quantos botões são eixos, para o dispositivo informado.
Esta função irá retornar o número de controles "eixo" no dispositivo que está sendo verificado.
Esses controles são a direção "direcionais analogicos" na maioria dos controladores.

Exemplo:

Código:
axis = gamepad_axis_count(0))
O código acima armazena o número de eixos disponíveis para o gamepad ligado ao dispositivo 0 "ranhura" na variável "eixo".
gamepad_axis_value

Código:
gamepad_axis_value
Descrição:

Retorna um valor com base na posição do eixo atual.
Você pode usar essa função para obter o valor dos diferentes eixos de um determinado gamepad.
O valor de retorno será entre -1 e 1 para cada um dos eixos horizontal e vertical disponíveis.

Exemplo:

Código:
direction = point_direction (0, 0, gamepad_axis_value (0, gp_axislh), gamepad_axis_value (0, gp_axislv));
  hspeed = lengthdir_x (gamepad_axis_value (0, gp_axislh), direção) * 5;
  vspeed = lengthdir_y (gamepad_axis_value (0, gp_axislv), direção) * 5;
O código acima define a velocidade ea direção da instância com base nos valores retornados do controlador
analógico esquerdo do gamepad ligado ao aparelho "compartimento" 0.
gamepad_button_check

Código:
gamepad_button_check
Descrição:

Retorna se um determinado botão gamepad está atualmente presionado.
Esta função irá retornar true ou false, dependendo se o botão do gamepad é pressionado ou não.

Exemplo:

Código:
if gamepad_button_check (0, gp_face1)
     {
     if canshoot = true
        {
        audio_sound_play (snd_Shoot, 0, false);
        instance_create (x, y, obj_Bullet)
        canshoot = false;
        Alarme [0] = room_speed / 2;
        }
     }
O código acima irá detectar se o botão "X" (o "X" em um controlador de ps3) está sendo pressionado e
se estiver, ele vai criar uma instância do "obj_Bullet" e definir um alarme.
gamepad_button_check_pressed

Código:
gamepad_button_check_pressed
Descrição:

Retorna se um determinado botão foi pressionado.
Esta função retornará verdadeiras ou falsas, dependendo se a tecla dada gamepad é detectada como tendo sido pressionado ou não.
Note que esta função só será desencadeada uma vez para o botão na primeira vez que for pressionado.
Pois para acionar novamente o botão primeiro deve ser soltado e então re-pressionado.
Se você precisa verificar um aperto contínuo do botão, você deve usar a função gamepad_button_check.

Exemplo:

Código:
if gamepad_button_check_pressed (0, gp_start)
     {
     audio_sound_play (snd_Start, 0, false);
     room_goto (rm_Level_1);
     }
O código acima irá detectar se o botão "start" do gamepad ligado ao "compartimento 0" foi pressionado ou não e
mudar de room se tiver.
gamepad_button_check_released

Código:
gamepad_button_check_released
Descrição:

Esta função irá retornar true ou false, caso o botão é detectado como tendo sido solto ou não.
Note que esta função só será desencadeada uma vez para o botão no momento em que foi lançado.
Para isso para desencadear novamente o botão tem de primeiro ser pressionado e depois soltado novamente.

Exemplo:

Código:
if gamepad_button_check_released (0, gp_select)
     {
     audio_sound_play (snd_Button, 0, false);
     ! global.Pause = global.Pause;
     }
O código acima irá detectar se o botão "select" do gamepad ligado ao "compartimento 0" foi soltado ou não,
e alternar a variável global "Pause".
gamepad_button_count

Código:
gamepad_button_count
Descrição:

Esta função irá retornar o número total de botões disponíveis para o gamepad ligado ao dispositivo no "compartimento 0".

Exemplo:

Código:
b_num gamepad_button_count = (0);
O código acima irá retornar o número de botões disponíveis no gamepad ligado ao "compartimento 0" e armazenar o valor
na variável "b_num".
gamepad_button_value

Código:
gamepad_button_value
Descrição:

Com esta função, você pode obter o valor atual de um botão analógico, de 0 a 1, onde 0 é nenhuma pressão e 1 é uma pressão total.

Exemplo:

Código:
speed = gamepad_button_value (0, gp_shoulderrb) * 4;
O código acima usa o valor de disparo análogo do gamepad ligado ao "compartimento 0" para definir a velocidade da instância.
gamepad_set_vibration

Código:
gamepad_set_vibration
Descrição:

Com esta função, você pode definir a vibração dos motores gamepad, com qualquer motor, utilizando um valor
de 0 (sem vibração) a 1 (vibração completa).
Note-se que não há limite de tempo para essa função, então você vai precisar usar uma variável ou um alarme para parar a
vibração (conjunto de motores a 0) depois de um determinado tempo senão o gamepad vai continuar a vibrar por
tempo indeterminado.

Nota: Esta função só está disponível para o módulo padrão do Windows alvo.

Exemplo:

Código:
if a lives = 0
     {
     gamepad_set_vibration (0, 1, 1);
     Alarme [0] = room_speed / 2;
     }
O código acima poderia ser utilizado (por exemplo) em um evento de colisão para fazer o gamepad ligado ao "compartimento 0"
vibrar por meio segundo, com o alarme que está definido sendo usado para desligá-lo novamente, uma vez que o tempo passou.
Lista dos botões de controles no GMS.

Constante         Descrição

gp_face1          //botão Top 1 (este mapeia para a "A" em um controlador de Xbox 360 e da cruz em um controlador de PS3)
gp_face2          //botão Top 2 (este mapeia para a "B" em um controlador de Xbox 360 eo círculo em um controlador de PS3)
gp_face3          //botão Top 3 (este mapeia para o "X" em um controlador de Xbox 360 e da praça em um controlador de PS3)
gp_face4          //botão Top 4 (este mapeia para o "Y" de um controlador de Xbox 360 eo triângulo em um controlador de PS3)
gp_shoulderl     //botão esquerdo "L1"
gp_shoulderr     //botão direito "R1"
gp_shoulderrb   //gatilho esquerdo "L2"
gp_shoulderrb   //gatilho direito "R2"
gp_select         //botão select
gp_start          //botão start
gp_stickl          //analógico esquerdo pressionado (como um botão)
gp_stickr          //stick direito pressionado (como um botão)
gp_padu           //D-pad para cima
gp_padd           //D-pad para baixo
gp_padl            //D-pad esquerdo
gp_padr           //D-pad para a direita
gp_axislh          //Esquerda vara eixo horizontal (analógico)
gp_axislv          //Esquerda vara eixo vertical (analógico)
gp_axisrh          //Direito vara eixo horizontal (analógico)
gp_axisrv          //direito furar eixo vertical (analógico)
[Lista]Descrição dos comandos de gamepad do GMS. Controle

Algumas considerações em relação ao OUYA:

1º O primeiro compartimento reconhecido no OUYA é o "1", o "0" não funciona.

2º O controle do OUYA não tem função de vibração, além de que os comandos do GMS são somente para o Windows.

3º O controle do OUYA não tem os botões "select" e "start".

4º Ainda não encontrei, o comando para o botão central do controle, mas assim que descobrir posto aqui.


Tags: "OUYA", "controle", "gamepad", "criar", "teclas", "botões", "analogico".
CRP-Max
CRP-Max

Games Ranking : Nota C

Notas recebidas : C
Data de inscrição : 28/10/2008
Reputação : 29
Número de Mensagens : 822
Prêmios : [Lista]Descrição dos comandos de gamepad do GMS. Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

[Lista]Descrição dos comandos de gamepad do GMS. Empty Re: [Lista]Descrição dos comandos de gamepad do GMS.

Mensagem por All-x Dom 08 Set 2013, 13:41

Ótimo CRP-Max!

Acho que vou participar do concurso e essa era uma das minhas dúvidas.

Esclareceu muita coisa pra mim e com certeza vai ajudar muita gente Happy.

FLWS!
All-x
All-x

Games Ranking : Nota A

Notas recebidas : B A
Data de inscrição : 20/12/2008
Reputação : 189
Número de Mensagens : 2571
Prêmios : [Lista]Descrição dos comandos de gamepad do GMS. Empty

Medalhas x 0 Tutoriais x 25 Moedas x 0

Ouro x 2 Prata x 1 Bronze x 1

Insignia 1 x 1 Insignia 2 x 0 Insignia 3 x 0
Plataformas :
  • Game Maker 8.0 ou 8.1
  • Game Maker Studio 1.4
  • Game Maker Studio 2.0
  • Javascript
  • C ou C++


https://redscreensoft.com

Ir para o topo Ir para baixo

[Lista]Descrição dos comandos de gamepad do GMS. Empty Re: [Lista]Descrição dos comandos de gamepad do GMS.

Mensagem por Luan Maia Dom 22 Set 2013, 00:06

Eu testei como gamepad e deu como não conectado, o meu joystick, então testei como joystick e deu como conectado. Será que eu fiz algo de errado? Se não, será que dá para eu usar essas funções de gamepad do mesmo jeito?
Acredito que não, mas não custa nada perguntar. Smile

Usei isso para ver se reconhecia como gamepad:
Código:

var gp_num = gamepad_get_device_count();
for (var i = 0; i < gp_num; i ++;)
{
   if gamepad_is_connected (i) global.gp [i] = true else global.gp [i] = false;
   draw_set_font(font0);
   if (global.gp [i] == true)  draw_text(100,100,"O gamepad "+string(i)+" está conectado!");
   else    draw_text(100,i/2*100,"O gamepad "+string(i)+" não está conectado!");
}
E usei isso para ver se reconhecia como joystick:
Código:

for (var i = 1; i < 3; i ++;)
{
    draw_set_font(font0);
    if (joystick_exists(i))  draw_text(20,i/2*100,"O joystick "+string(i)+" está conectado e o nome dele é "+joystick_name(i)+"!");
    else    draw_text(20,i/2*100,"O joystick "+string(i)+" não está conectado!");
}
Luan Maia
Luan Maia

Games Ranking : Sem avaliações

Notas recebidas : D+C+C+D
Data de inscrição : 01/07/2010
Reputação : 2
Número de Mensagens : 404
Prêmios : [Lista]Descrição dos comandos de gamepad do GMS. Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

[Lista]Descrição dos comandos de gamepad do GMS. Empty Re: [Lista]Descrição dos comandos de gamepad do GMS.

Mensagem por Zero. Ter 07 Jan 2014, 02:18

O meu aconteceu o msm do lucas maia, só reconheceu como joystick.
Zero.
Zero.

Data de inscrição : 19/08/2010
Reputação : 47
Número de Mensagens : 1300
Prêmios : [Lista]Descrição dos comandos de gamepad do GMS. Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 1 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

[Lista]Descrição dos comandos de gamepad do GMS. Empty Re: [Lista]Descrição dos comandos de gamepad do GMS.

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Ir para o topo Ir para baixo

Ir para o topo

- Tópicos semelhantes

 
Permissões neste sub-fórum
Não podes responder a tópicos