Conectar-se
Quem está conectado
27 usuários online :: Nenhum usuário registrado, Nenhum Invisível e 27 Visitantes

Nenhum

Ver toda a lista


Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte
avatar
Data de inscrição : 03/08/2008
Número de Mensagens : 1156
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 0

Prêmios
   : 1
   :
   :
Ver perfil do usuáriohttp://www.ciganospictures.hd1.com.br

??movimento??

em Qui 02 Out 2008, 18:29
fiz um esquema assim:

ele pede uma tecla, tipo:

global.cima=get_string('qual tecla vc deseja........)

e no evento step te um esquema assim

if keyboard_check(global.cima) {y-=5}

mas nao funciona, alguem sabe porque?
avatar
Data de inscrição : 24/05/2008
Número de Mensagens : 2417
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 14

Prêmios
   : 0
   : 2
   : 0
Ver perfil do usuário

Re: ??movimento??

em Qui 02 Out 2008, 19:05
a tecla que vc por deve ser em maiusculo ex:
A
mas se for uma outra tecla tipo as setas ai ja tem que por vk_left (esquerda)
avatar
Data de inscrição : 03/08/2008
Número de Mensagens : 1053
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 4

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: ??movimento??

em Qui 02 Out 2008, 19:07
sim, eu sei.
Pois a variável global.cima está sendo direcionada para o get_string, ou seja, uma string.
Sendo que, controles do teclado não são strings.

Você poderia usar variáveis para as teclas, por exemplo, no Create:

Código:
global.b_cima="" //A variável de cima
cima=vk_up
baixo=vk_down
direita=vk_right
esquerda=vk_left
//Etc...

E então, ao invés de colocar só o 'global.cima=get_string(...)', coloque:

Código:
global.cima=get_string("Digite a tecla de movimento para cima:",global.b_cima)
execute_string(global.b_cima)

Bom, caso queira fazer um sistema de seleção de controles, sugiro outro método, pois este é muito limitado.

Vlw^^
avatar
Data de inscrição : 24/05/2008
Número de Mensagens : 2417
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 14

Prêmios
   : 0
   : 2
   : 0
Ver perfil do usuário

Re: ??movimento??

em Qui 02 Out 2008, 19:09
Claudio Bruno escreveu:sim, eu sei.
Pois a variável global.cima está sendo direcionada para o get_string, ou seja, uma string.
Sendo que, controles do teclado não são strings.

Você poderia usar variáveis para as teclas, por exemplo, no Create:

Código:
global.b_cima="" //A variável de cima
cima=vk_up
baixo=vk_down
direita=vk_right
esquerda=vk_left
//Etc...

E então, ao invés de colocar só o 'global.cima=get_string(...)', coloque:

Código:
global.cima=get_string("Digite a tecla de movimento para cima:",global.b_cima)
execute_string(global.b_cima)

Bom, caso queira fazer um sistema de seleção de controles, sugiro outro método, pois este é muito limitado.

Vlw^^

ou se é para fazer a string virar valor é so usar:
global.cima = real(global.cima)
avatar
Data de inscrição : 03/08/2008
Número de Mensagens : 1156
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 0

Prêmios
   : 1
   :
   :
Ver perfil do usuáriohttp://www.ciganospictures.hd1.com.br

Re: ??movimento??

em Qui 02 Out 2008, 19:10
hm...........
vlw janx agora sim!
avatar
Data de inscrição : 03/08/2008
Número de Mensagens : 1053
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 4

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: ??movimento??

em Qui 02 Out 2008, 19:11
Legal, não sabia que dava pra fazer isso oO
avatar
Ranking : Sem avaliações
Data de inscrição : 08/06/2008
Número de Mensagens : 2314
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 100

Prêmios
   : 3
   : 0
   : 1
Ver perfil do usuáriohttp://blackcapapps.blogspot.com.br/

Re: ??movimento??

em Qui 02 Out 2008, 21:18
Isso deu certo mesmo?
Por que não vi vocês usando ord() para voltar o valor da tecla que o jogador usou.

Se global.cima é uma letra, isso aqui daria erro:
Código:
global.cima = real(global.cima)
Como você vai transformar uma letra em número assim? Suspect

E você não deve usar get_string para isso.
E se o jogador digitar mais de um letra?
Daria um erro facilmente.

É melhor usar a variavel keyboard_lastkey que retorna o valor da última tecla apertada.
Assim você grava o valor de keyboard_lastkey em global.cima.
Código:
if escolher_uma_letra=true
{
    global.cima=keyboard_lastkey
}
if keyboard_check(global.cima)
{
    ...........
}
avatar
Data de inscrição : 03/08/2008
Número de Mensagens : 1053
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 4

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: ??movimento??

em Qui 02 Out 2008, 21:47
era esse o método menos limitado, usando o keyboard_lastkey.
Mas como ele havia pedido naquele modo, fiz daquele modo mesmo.

No exemplo que fiz, ele cria as variáveis cima,baixo,direita e esquerda, direcionando para os comandos do gm que são essas teclas (vk_up,vk_down,vk_right e vk_left), e o global.b_cima é a variável da caixa de controle das teclas, que é executada, e se digitar o nome de alguma das variáveis direcionadas para os valores das teclas do game maker, será executada essa ação. Ou seja, caso digite na caixa 'cima', o controle será para cima, e assim vai, esse realmente é um sistema complicado e limitado, pois seriam feitas variáveis para cada tecla do teclado.
Ver o tópico anteriorVoltar ao TopoVer o tópico seguinte
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum