Entrar
Últimos assuntos
» player não consegue andarpor 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
GMBR :: Ensine & Aprenda :: Tutoriais :: Game Maker
Página 1 de 1
[Lista]Descrição dos comandos de gamepad do GMS.
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
Constante Descrição
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".
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
gamepad_get_device_countDescrição:
- Código:
gamepad_is_supported
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:O código acima verifica se um gamepad é suportado e armazena o valor de retorno em uma variável global para verificações futuras.
- Código:
global.GP = gamepad_is_supported = ();
gamepad_is_connectedDescrição:
- Código:
gamepad_get_device_count
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: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.
- 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;
}
O valor retornado é então usado para definir uma matriz global de verdadeiro ou falso, para uso em futuras verificações.
gamepad_get_descriptionDescrição:
- Código:
gamepad_is_connected
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: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.
- 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;
}
O valor retornado é então usado para definir uma matriz global de verdadeiro ou falso para uso em futuras verificações.
gamepad_get_button_thresholdDescrição:
- Código:
gamepad_get_description
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_set_button_thresholdDescrição:
- Código:
gamepad_get_button_threshold
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: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.
- Código:
if gamepad_get_button_threshold (0)! = 0,5
{
gamepad_set_button_threshold (0, 0,5);
}
gamepad_axis_countDescrição:
- Código:
gamepad_set_button_threshold
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: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.
- Código:
if gamepad_get_button_threshold (0)! = 0,5
{
gamepad_set_button_threshold (0, 0,5);
}
gamepad_axis_valueDescrição:
- Código:
gamepad_axis_count
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:O código acima armazena o número de eixos disponíveis para o gamepad ligado ao dispositivo 0 "ranhura" na variável "eixo".
- Código:
axis = gamepad_axis_count(0))
gamepad_button_checkDescrição:
- Código:
gamepad_axis_value
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:O código acima define a velocidade ea direção da instância com base nos valores retornados do controlador
- 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;
analógico esquerdo do gamepad ligado ao aparelho "compartimento" 0.
gamepad_button_check_pressedDescrição:
- Código:
gamepad_button_check
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:O código acima irá detectar se o botão "X" (o "X" em um controlador de ps3) está sendo pressionado e
- 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;
}
}
se estiver, ele vai criar uma instância do "obj_Bullet" e definir um alarme.
gamepad_button_check_releasedDescrição:
- Código:
gamepad_button_check_pressed
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:O código acima irá detectar se o botão "start" do gamepad ligado ao "compartimento 0" foi pressionado ou não e
- Código:
if gamepad_button_check_pressed (0, gp_start)
{
audio_sound_play (snd_Start, 0, false);
room_goto (rm_Level_1);
}
mudar de room se tiver.
gamepad_button_countDescrição:
- Código:
gamepad_button_check_released
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:O código acima irá detectar se o botão "select" do gamepad ligado ao "compartimento 0" foi soltado ou não,
- Código:
if gamepad_button_check_released (0, gp_select)
{
audio_sound_play (snd_Button, 0, false);
! global.Pause = global.Pause;
}
e alternar a variável global "Pause".
gamepad_button_valueDescrição:
- Código:
gamepad_button_count
Esta função irá retornar o número total de botões disponíveis para o gamepad ligado ao dispositivo no "compartimento 0".
Exemplo:O código acima irá retornar o número de botões disponíveis no gamepad ligado ao "compartimento 0" e armazenar o valor
- Código:
b_num gamepad_button_count = (0);
na variável "b_num".
gamepad_set_vibrationDescrição:
- Código:
gamepad_button_value
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:O código acima usa o valor de disparo análogo do gamepad ligado ao "compartimento 0" para definir a velocidade da instância.
- Código:
speed = gamepad_button_value (0, gp_shoulderrb) * 4;
Lista dos botões de controles no GMS.Descrição:
- Código:
gamepad_set_vibration
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:O código acima poderia ser utilizado (por exemplo) em um evento de colisão para fazer o gamepad ligado ao "compartimento 0"
- Código:
if a lives = 0
{
gamepad_set_vibration (0, 1, 1);
Alarme [0] = room_speed / 2;
}
vibrar por meio segundo, com o alarme que está definido sendo usado para desligá-lo novamente, uma vez que o tempo passou.
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)
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- Games Ranking :
Notas recebidas : C
Data de inscrição : 28/10/2008
Reputação : 29
Número de Mensagens : 822
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: [Lista]Descrição dos comandos de gamepad do GMS.
Ó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 .
FLWS!
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 .
FLWS!
Re: [Lista]Descrição dos comandos de gamepad do GMS.
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.
Usei isso para ver se reconhecia como gamepad:
Acredito que não, mas não custa nada perguntar.
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!");
}
- 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- Games Ranking :
Notas recebidas : D+C+C+D
Data de inscrição : 01/07/2010
Reputação : 2
Número de Mensagens : 404
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: [Lista]Descrição dos comandos de gamepad do GMS.
O meu aconteceu o msm do lucas maia, só reconheceu como joystick.
Zero.- Data de inscrição : 19/08/2010
Reputação : 47
Número de Mensagens : 1300
Prêmios :
x 0 x 0 x 0
x 1 x 0 x 0
x 0 x 0 x 0
Tópicos semelhantes
» Problemas com GamePad
» Gamepad OUYA
» Diferenças, joystick / gamepad
» Joypad é o mesmo que Gamepad?
» Duvida sobre gamepad
» Gamepad OUYA
» Diferenças, joystick / gamepad
» Joypad é o mesmo que Gamepad?
» Duvida sobre gamepad
GMBR :: Ensine & Aprenda :: Tutoriais :: Game Maker
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos