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
» Colisões não funcionando
por RastaMaan Ontem à(s) 19:49

» Como ajustar velocidade de cada frame da animação no game maker
por pequetux Ontem à(s) 16:45

» Preciso de ajuda
por AftonDuGrau Dom 21 Abr 2024, 20:18

» Como faz o evento drawn GUI, não se repetir?
por aminaro Sex 19 Abr 2024, 20:30

» PROBLEMAS COM FÍSICAS DE ÁGUA
por aminaro Ter 16 Abr 2024, 10:07

» Retorno da GMBR!!!
por Ralphed Sex 12 Abr 2024, 22:45

» JOGADOR PARANDO NO AR QUANDO ATACA
por aminaro Qua 10 Abr 2024, 13:51

» Problemas com texto interativo
por Kaaru72 Dom 07 Abr 2024, 11:31

» Erro escondido e indecifrável
por dev_gabize.azv Qui 04 Abr 2024, 10:11

» Mudar cor de apenas uma palavra
por Ralphed Sáb 30 Mar 2024, 00:39

» Procuro Programador de game maker
por Wou Sex 15 Mar 2024, 10:27

» Mod APK
por gamerainha Qua 13 Mar 2024, 06:30

» Aceito pedidos de sprites (Com exemplos meus)
por Sevilha Qua 28 Fev 2024, 12:17

» Inventário simples
por Isquilo_Roedor Qui 22 Fev 2024, 15:18

» Problemas na programaçnao de inimigo [jogo DOOM LIKE]
por Black Mirror Dom 11 Fev 2024, 13:34

» ANDROID MULTI TOUCH
por DiegoBr Dom 04 Fev 2024, 12:13

» Servidor de Discord do fórum?
por Lighter Sáb 27 Jan 2024, 17:18

» Save e Load Json
por Klinton Rodrigues Qui 25 Jan 2024, 11:12

» Colisão com mais de um objeto
por aminaro Seg 22 Jan 2024, 15:02

» Oi sou novo aqui
por Thiago Silveira Alexandre Sáb 20 Jan 2024, 20:55

» Como acessar conteudo comprado no marketplace
por macmilam Sex 19 Jan 2024, 07:42

» Devlogs em vídeos do Block Room
por Joton Seg 15 Jan 2024, 16:56

» Alguém aqui já ganha dinheiro com seus games?
por Joton Seg 15 Jan 2024, 16:49

» ACERVO GMBR MAGAZINE
por Joton Qui 11 Jan 2024, 19:21

» como aumentar o obj sem aumentar a colisão??
por GabrielXavier Qua 10 Jan 2024, 07:21


[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